Mess Posté 5 Mai 2004 Partager Posté 5 Mai 2004 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 5 Mai 2004 Partager Posté 5 Mai 2004 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mess Posté 5 Mai 2004 Auteur Partager Posté 5 Mai 2004 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é -Mess Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 5 Mai 2004 Partager Posté 5 Mai 2004 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mess Posté 5 Mai 2004 Auteur Partager Posté 5 Mai 2004 (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 .. -Mess Modifié 5 Mai 2004 par Mess Lien vers le commentaire Partager sur d’autres sites More sharing options...
CiD Posté 5 Mai 2004 Partager Posté 5 Mai 2004 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mess Posté 5 Mai 2004 Auteur Partager Posté 5 Mai 2004 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant