IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Requête entre 2 codes postaux de type alphanumérique


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Requête entre 2 codes postaux de type alphanumérique
    Bonjour,

    j'ai deux champs Localisation et LocalisationB et je veux trouver tous ce qui correspond entre les 2 et sont de type une lettre, un chiffre et une lettre exp: J0A
    voici ce que je fais et qui ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM `tblLocalisation` 
    WHERE 'J0C'  REGEXP '[A-Z]{1}[0-9]{1}[A-Z]{1}' in (Localisation,LocalisationB) 
    and Type='CodePostal'
    je dois retrouver tous les lignes que le code postal peux se retrouver comme entre J0A et J0W ou J0A et J2B

    quelqu'un a une idée meilleure que la mienne qui de toute évidence n'est pas bonne

    Merci!

    Rémy

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    J'ai pas très bien compris ce que tu voulais ... Tu pourrais nous montrer un petit jeu de données ?

    Est-ce quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
       * 
    FROM
       tblLocalisation
    WHERE
       (
          Localisation  REGEXP '^[A-Z][0-9][A-Z]$' OR
          LocalisationB REGEXP '^[A-Z][0-9][A-Z]$'
       ) AND
       Type = 'CodePostal'

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut explication plus claire avec exemple
    Oui effectivement, j'ai même de la difficulté à me comprendre! Ha! ha!

    Alors voici,

    par la méthode $_POST les gens vont entrer une recherche de type lettre,chiffre,lettre comme B2G et moi je veux trouver dans ma table les CU_Localisation ou le $_POST['B2G'] peut s'intégrer entre Localisation et LocalisationB

    ici dans cette exemple on devrait retrouver la ligne correspondant au CU_Localisation=2 puisque B2G est entre B0A et B9Z

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM `tblLocalisation` 
    WHERE $_POST['LettreChiffreLettre']  REGEXP '[A-Z]{1}[0-9]{1}[A-Z]{1}' IN (Localisation,LocalisationB) 
    AND Type='CodePostal'
    c'est pourquoi dans ma requète il y a le IN. Le REGEXP est d'essayer de faire comprendre à MySql qu'il faut faire la recherche avec un mélange de chiffre et de lettre. J'ai aussi essayer avec REGEXP "[[:alnum:]]"

    Nom : bd_exemple.png
Affichages : 1267
Taille : 44,1 Ko

    au cas ou l'image de la BD fonctionne pas,

    CU_Localisation | Localisation | LocalisationB | Type
    1 | A0A | A9Z | CodePostal
    2 | B0A | B9Z | CodePostal
    3 | C0A | C9Z | CodePostal
    j'espère avoir été plus clair et encore merci de vos réponses!

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Tu peux simplement comparer les chaines comme des nombres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
       * 
    FROM
       tblLocalisation
    WHERE
       :ta_valeur BETWEEN Localisation AND LocalisationB AND
       Type = 'CodePostal'

  5. #5
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut J'ai trouvé
    voici ce que je devais faire

    tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `tblLocalisation` WHERE 'B2G' between `Localisation` and `LocalisationB` and `Type`='CodePostal'

  6. #6
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Tu peux simplement comparer les chaines comme des nombres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
       * 
    FROM
       tblLocalisation
    WHERE
       :ta_valeur BETWEEN Localisation AND LocalisationB AND
       Type = 'CodePostal'

    Effectivement je cherchais dans la complexité alors que c'était si simple.
    Je n'avais pas vu ta réponse mais un gros merci , c'est exactement ce que je devais faire

    Très apprécié!

    Bonne journée

    Rémy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête pour regrouper des codes postaux
    Par viny dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/04/2012, 21h22
  2. Se procurer bases de données ISBN, UCP, Codes postaux...
    Par zatomik dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 26/10/2010, 19h55
  3. [Toutes versions] Quel type de données pour les codes postaux?
    Par pier.antoine dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/06/2009, 10h19
  4. Tri par Codes Postaux + Noms d'entreprises
    Par matperino dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/07/2005, 14h04
  5. Réponses: 6
    Dernier message: 21/06/2005, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo