Aller au contenu

Mysql select : recherche les mots commencant par A


Sujets conseillés

Posté (modifié)
mon champ mot contient plusieurs mots comme je ne veux afficher que le mot recherché le code suivant me retourne tout le contenu de chaque champ contenant ABC, une idée, on est toujours dans des requetes mysql ou l'on doit passer par php.

Pour en revenir à ta dernière question :

Tu vas effectivement être obligé de récupérer la totalité de ton champ et faire un traitement en Php. Je suppose que tu as un séparateur de mot et que tu pourras faire un split dessus.

Comme tu as plusieurs mots dans ton champ la syntaxe :

LIKE 'ABC%'

ne marche plus. Tu seras obligé d'utiliser :

LIKE '%ABC%'

Donc :

- tu ne détecte plus les mots qui commencent par ABC, mais les mots qui contiennent ABC

- Si tu as indexer ton champ, l'index ne sera pas utilisé avec la 2° syntaxe => perte de performance

Une structure possible aurait été :

- une table dictionnaire : IDMot, Mot ( unique, fulltext ). Un seul mot par ligne

- une table user : IDUser, userName

- une table mot2user : IDMot, IDUser

Modifié par Spidetra
Posté (modifié)

si j'ai bien compris, va falloir aussi que tu changes ta requête SQL :

$select = "SELECT DISTINCT mot FROM TB_mots WHERE mot LIKE '%ABC%' ";

Modifié par petit-ourson
Posté

ta rquete va me trouver tout ce qui contient ABC et non ce qui commence par ABC? moi je veux lister tout les mots commencant par a, puis b etc...

Si dans mon champ mot, j'ai : ABCXX XXABC XABCX etc... en tout cas merci de ton active participation.

Florent

Posté

$select = "SELECT DISTINCT mot FROM TB_mots WHERE mot LIKE 'ABC%' OR mot LIKE ' ABC%'";

Après tu fais le reste en php pour simplifier les choses

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...