Aller au contenu

Compter le nb d'occurence d'un mot dans un champ


Sujets conseillés

Posté

Bonjour,

je suis un p'tit nouveau sur ce forum, très intéressant en passant surtout coté optimisation des standards, et je me pose une petite question, à laquelle je n'ai pu trouvé de réponse..

est-il possible de compter le nombre d'occurence d'un mot dans un champ en SQL (avec MySQL).. je ne crois pas mais bon.. on sait jamais!

Je sais que je peux le faire en php après avoir obtenu mon recordset, mais je préférerais le faire directement en SQL... c'est dans le but de créer un critère de pertinence pour un moteur de recherche qui lui cherche dans la BD du site...

merci bien d'avance de vos idées..

-Mess

Posté

Bonjour,

pour trouver un mot, dans une base de données, il faut faire:

SELECT champ FROM table WHERE champ LIKE '%mot%'

Pour trouver le nombre de fois, sans pour autant dépiler les champs, alors il faut utiliser count()

SELECT count(champ) FROM table WHERE champ LIKE '%mot%'

Anonymus.

Posté

je me suis peut-être mal exprimé..

je veux compter le nombre d'occurence d'un mot dans un champ, et ce pour tous les champs trouvés par la clause where..

exemple :

champ : bla blo bla bli blu bla

je veux savoir si il existe une fonction du genre :

CompterOccurence(dans champ, pour le mot "bla"), donc qui retournerait 3...

merci pour la rapidité :P

-Mess

Posté

Alors...

En fait, il s'avère que cela varie beaucoup en fonction des différentes versions de mysql. Essaies ceci, tu me dis si ca marche ou pas ;)

SELECT Identifiant,CHARACTER_LENGTH('mot') FROM table GROUP BY  CHARACTER_LENGTH('mot')

Anonymus.

Posté (modifié)

Hmm, j'ai fait un petit test.. et je ne crois pas que ça marche..

CHARACTER_LENGTH('bla') donnera toujours 3, et faire un GROUP BY 3 ...

j'ai peut-être mal compris .. :huh:

-Mess

Modifié par Mess
Posté

Tu peux te tourner vers

MATCH(col1, col2, col3, ...) AGAINST(expr)

qui renvoie un nombre décrivant la pertinence de l'expression 'expr' dans les colonnes 'col1', 'col2', 'col3',...

Je n'ai jamais utilisé ce truc alors je ne puis aller plus loin... J'espère que c'est une indication qui te sera utile.

Posté

C'est pas exactement ce que je cherchais, mais c'est très comparable!

En effet, ça retourne un degré de pertinence tout dépendant du nombre de fois que le mot est présent dans un ou plusieurs champs.

merci énormément!

-Mess

Veuillez vous connecter pour commenter

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



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