Comment trier par pertinance en MYSQL ?
davidbdjt
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
productif Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
productif Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je mexlique :
jai une table "contenu" contenu 1 champ "mot".
enregistrement 1 : f u h k
enregistrement 2 : b c f g
enregistrement 3 : b a c d e
enregistrement 4 : c k i
Je recherche par ordre de pertinance les mot "b a c"
Quel sera la requete SQL qui me renverra dans l'ORDRE
enregistrement 3 : b a c d e (3 element trouve)
enregistrement 2 : b c f g (2 element trouve)
enregistrement 4 : c k i ( 1 element trouve)
enregistrement 1 : f u h k (0 element trouve)
MERCI POUR VOTRE AIDE
je mexlique :
jai une table "contenu" contenu 1 champ "mot".
enregistrement 1 : f u h k
enregistrement 2 : b c f g
enregistrement 3 : b a c d e
enregistrement 4 : c k i
Je recherche par ordre de pertinance les mot "b a c"
Quel sera la requete SQL qui me renverra dans l'ORDRE
enregistrement 3 : b a c d e (3 element trouve)
enregistrement 2 : b c f g (2 element trouve)
enregistrement 4 : c k i ( 1 element trouve)
enregistrement 1 : f u h k (0 element trouve)
MERCI POUR VOTRE AIDE
A voir également:
- Comment trier par pertinance en MYSQL ?
- Comment trier par ordre alphabétique sur excel - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Mysql community server - Télécharger - Bases de données
- Vba trier colonne par ordre croissant - Forum VB / VBA
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
1 réponse
A moins que les mots à chercher "b a c" soient toujours les mêmes, le plus judicieux est certainement de créer une fonction stockée MySQL qui renvoie le nombre d'éléments trouvés en fonctions des deux ensembles de mots :
Cette fonction doit renvoyer le nombre de mots trouvés dans chaine_a_explorer, où chaine_mots_recherches contient les mots recherchés.
La requête SQL qui renverra le résultat recherché sera du genre:
CREATE FUNCTION nb_elements(chaine_a_explorer VARCHAR(50), chaine_mots_recherches VARCHAR(50)) RETURNS INTEGER BEGIN ... END
Cette fonction doit renvoyer le nombre de mots trouvés dans chaine_a_explorer, où chaine_mots_recherches contient les mots recherchés.
La requête SQL qui renverra le résultat recherché sera du genre:
SELECT ... FROM contenu... WHERE ... ORDER BY nb_elements(mot, 'a b c') DESC