Selection avec une condition insensible à la casse

Mammouth du PHP | 693 Messages

07 mars 2007, 14:48

Bonjour,

J'aimerai savoir s'il est possible de faire une requet de ce type :

SELECT * FROm table WHERE champ='a',

Et qui récupère toutes lignes avec a ou A dans 'champ'.

EN gros, faire que la condition est insensible à la casse :D

IL y a bien la solution de mettre tout en casse basse pour chaque enregistrement, mais vu que ma BDD est déjà formé, je préférerais éviter...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

07 mars 2007, 15:24

Tu peux le faire en utilisant UPPER() ou LOWER() pour comparer ton champ, mais je pense qu'il est plus judicieux de l'utiliser dans un update sur ta base si cela n'impacte pas plus que ca son fonctionnement.

Code : Tout sélectionner

SELECT ... FROM table WHERE LOWER(champ)='a'
Le plus optimisé étant donc de mettre en minuscule (ou majuscule) toutes les données de ton champ (et de t'assurer que les prochaines respecteront ce format)

Code : Tout sélectionner

UPDATE table SET champ = LOWER(champ); SELECT ... FROM table WHERE champ='a';
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 693 Messages

07 mars 2007, 17:01

Merci beaucoup.
Modifié en dernier par orgerix le 07 mars 2007, 17:26, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

07 mars 2007, 17:23

Modération :
orgerix, si tu as une autre question ouvre un nouveau sujet,
cela te permettra d'avoir plus de réponses.

En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.

Merci de prendre le temps de lire les règlements.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 693 Messages

07 mars 2007, 17:25

Voila, voila, c'est fait.