[RESOLU] Mysql(i) : nombre de résultats avec un like

Mammouth du PHP | 2278 Messages

06 nov. 2013, 13:22

Simple curiosité.

Quand je traite
select mot from mots where mot like "%h" and categorie ="ADJ";
mysql me renvoie 18 résultats c'est à dire 3 fois les mêmes résultats.
Ce n'est pas trop dérangeant sur cet exemple, mais queand il me renvoie 3000 résultats, la consultation en est moins confortable.
Qui peut me dire pourquoi et s'il y a moyen de remédier à ça.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Pitet
Invité n'ayant pas de compte PHPfrance

06 nov. 2013, 16:09

Salut,

Si tu as des doublons dans ta base de données ou si plusieurs résultats identiques existes, il est normal que mysql te les affiches.
C'est peut-être tout à fait normal pour ta base de données, mais on ne pourra pas te l'assurer sans plus de précision.

Une solution simple est d'utiliser le mot clé mysql DISTINCT pour ne pas récupérer plusieurs fois le même résultats :
SELECT DISTINCT mot FROM mots WHERE ...
Bonne journée

Mammouth du PHP | 2278 Messages

06 nov. 2013, 17:34

Merci.
C'est une table que j'ai convertie et queje n'utilse qu'en ligne de commande pour avoir diverses infos où le nombre importe peu. J'avais donc ignoré le "problème".
Je pensais à tort que la raison en venait du like qui est le seul opérateur que j'utilise dessus....
Effectivement la base est doublonnée et n'a pas d'id.
Distibct fonctionne parfaitement.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD