Soucis avec LIKE/MySql ...

Zagoya
Invité n'ayant pas de compte PHPfrance

04 janv. 2012, 03:43

Bonjour,

Ma question peut être très simple mais après de nombreuses recherches je dois bien avouer ne pas m'en sortir :)

J'ai dans ma table un champs "categories" qui contient des suites de nombres séparés par des "|" (ex: 2|12|19|35|49). Lors de l'affichage, je voudrais sélectionner tous les enregistrements qui possèdent le 2 dans cette suite de nombres par exemple.

J'ai pensé à faire un LIKE '%2%' mais il est évident que cela me sortira des enregistrements qui ne possèdent pas le 2 mais le 12, le 24 ou tout autre nombre avec un 2 !

Quelle serait la solution pour trouver à coup sûr tous les enregistrements qui possède un 2 dans cette suite de nombres ?


Merci par avance,
Cordialement.

ViPHP
xTG
ViPHP | 7331 Messages

04 janv. 2012, 07:46

LIKE '%|2|%' est le seul moyen, mais il va falloir mettre un | en début et en fin de ton enregistrement.
Par contre je trouve cela moche... Une table de jointure aurait été mieux. ;)

Zagoya
Invité n'ayant pas de compte PHPfrance

04 janv. 2012, 14:58

Merci pour ta réponse.

En effet la table de jointure est beaucoup plus pratique mais après essai, les plusieurs milliers d'enregistrements présents font que la page met un temps énorme à s'afficher. Je vais voir pour ajouter le | en début alors désormais s'il n'y a pas d'autres options.

Merci à toi :)

ViPHP
xTG
ViPHP | 7331 Messages

04 janv. 2012, 20:13

Cela m'étonnerai fortement que le LIKE soit plus rapide qu'une table de jointure pour la recherche. :roll: