Mon SELECT ne se fait pas correctement

Résolu
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Pourquoi mon SELECT ne s'éxécute pas correctement :
$select = "SELECT * FROM ville_bis WHERE lieu_mariage_1 LIKE '%BASSEMBERG%' || lieu_mariage_2 LIKE '%BASSEMBERG%' || lieu_mariage_3 LIKE '%BASSEMBERG%' || lieu_mariage_4 LIKE '%BASSEMBERG%' AND SUBSTRING(date_naissance, -4) > '1500' AND SUBSTRING(date_naissance, -4) < '1801' OR date_naissance LIKE '' AND sexe LIKE 'F' ORDER BY nom ASC, prenom ASC";

En fait, il n'y a que AND sexe LIKE 'F' ORDER BY nom ASC, prenom ASC qui s'éxécute correctement. Pour les SUBSTRING(date_naissance, -4), je ne peux pas l'affirmer.
Merci.

2 réponses

Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Essaye en rajoutant des parenthèse :
$select = "SELECT * FROM ville_bis WHERE (lieu_mariage_1 LIKE '%BASSEMBERG%' OR lieu_mariage_2 LIKE '%BASSEMBERG%' OR lieu_mariage_3 LIKE '%BASSEMBERG%' OR lieu_mariage_4 LIKE '%BASSEMBERG%') AND ((SUBSTRING(date_naissance, -4) > '1500' AND SUBSTRING(date_naissance, -4) < '1801') OR date_naissance LIKE '') AND sexe LIKE 'F' ORDER BY nom ASC, prenom ASC";
1
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   11
 
C'était en effet un problème de parenthèse. Avec ceci ça fonctionne :
$select = 'SELECT * FROM ville_bis WHERE sexe LIKE "F" AND (lieu_mariage_1 LIKE "%ALBE%" OR lieu_mariage_2 LIKE "%ALBE%" OR lieu_mariage_3 LIKE "%ALBE%" OR lieu_mariage_4 LIKE "%ALBE%")
			AND (SUBSTRING(date_naissance, -4) > "1500" AND SUBSTRING(date_naissance, -4) < "1801" OR date_naissance LIKE "") ORDER BY nom ASC, prenom ASC';	

Merci pour ton aide.
;o))
0