8 Terry Pratchett
Les Petits Dieux
0
9 Terry Pratchett
Le Cinquième éléphant
0
10 Terry Pratchett
La Vérité
0
11 Terry Pratchett
Le Dernier héros
0
12 Terry Goodkind
Le Temple des vents
0
13 Daniel Pennac
Comme un roman
0
14 Jules Verne
De la Terre à la Lune
5.851144790649414
15 Jules Verne
Voyage au centre de la Terre 3.2267112731933594
16 Henri-Pierre Roché Jules et Jim
1.4018518924713135
En fait, écrire :
Code : SQL
WHERE MATCH(colonne(s)) AGAINST (mot(s) recherché(s))
Cela revient à écrire :
Code : SQL
WHERE MATCH(colonne(s)) AGAINST (mot(s) recherché(s)) > 0
Donc seules les lignes ayant une pertinence supérieure à 0 (donc correspondant à la recherche) seront sélectionnées.
Recherche avec booléens
La recherche avec booléens possède les caractéristiques suivantes :
elle ne tient pas compte de la règle des 50 % qui veut qu'un mot présent dans 50 % des lignes au moins soit ignoré ;
elle peut se faire sur une ou des colonne(s) sur laquelle (lesquelles) aucun index FULLTEXT n'est défini (ce sera
cependant beaucoup plus lent que si un index est présent) ;
les résultats ne seront pas triés par pertinence par défaut.
Pour faire une recherche avec booléens, il suffit d'ajouter IN BOOLEAN MODE après la chaîne recherchée.
Code : SQL
SELECT *
FROM nom_table
WHERE MATCH(colonne)
AGAINST('chaîne recherchée' IN BOOLEAN MODE); -- IN BOOLEAN MODE à
l'intérieur des parenthèses !
La recherche avec booléens permet d'être à la fois plus précis et plus approximatif dans ses recherches.
Plus précis, car on peut exiger que certains mots se trouvent ou soient absents dans la ligne pour la sélectionner. On
peut même exiger la présence de groupes de mots, plutôt que de rechercher chaque mot séparément.
Plus approximatif, car on peut utiliser un astérisque * en fin de mot, pour préciser que le mot peut finir de n'importe quelle
manière.
Pour exiger la présence ou l'absence de certains mots, on utilise les caractères + et -. Un mot précédé par + devra être présent
dans la ligne et inversement, précédé par - il ne pourra pas être présent.
Partie 2 : Index, jointures et sous-requêtes
84/414
www.openclassrooms.com
Les Petits Dieux
0
9 Terry Pratchett
Le Cinquième éléphant
0
10 Terry Pratchett
La Vérité
0
11 Terry Pratchett
Le Dernier héros
0
12 Terry Goodkind
Le Temple des vents
0
13 Daniel Pennac
Comme un roman
0
14 Jules Verne
De la Terre à la Lune
5.851144790649414
15 Jules Verne
Voyage au centre de la Terre 3.2267112731933594
16 Henri-Pierre Roché Jules et Jim
1.4018518924713135
En fait, écrire :
Code : SQL
WHERE MATCH(colonne(s)) AGAINST (mot(s) recherché(s))
Cela revient à écrire :
Code : SQL
WHERE MATCH(colonne(s)) AGAINST (mot(s) recherché(s)) > 0
Donc seules les lignes ayant une pertinence supérieure à 0 (donc correspondant à la recherche) seront sélectionnées.
Recherche avec booléens
La recherche avec booléens possède les caractéristiques suivantes :
elle ne tient pas compte de la règle des 50 % qui veut qu'un mot présent dans 50 % des lignes au moins soit ignoré ;
elle peut se faire sur une ou des colonne(s) sur laquelle (lesquelles) aucun index FULLTEXT n'est défini (ce sera
cependant beaucoup plus lent que si un index est présent) ;
les résultats ne seront pas triés par pertinence par défaut.
Pour faire une recherche avec booléens, il suffit d'ajouter IN BOOLEAN MODE après la chaîne recherchée.
Code : SQL
SELECT *
FROM nom_table
WHERE MATCH(colonne)
AGAINST('chaîne recherchée' IN BOOLEAN MODE); -- IN BOOLEAN MODE à
l'intérieur des parenthèses !
La recherche avec booléens permet d'être à la fois plus précis et plus approximatif dans ses recherches.
Plus précis, car on peut exiger que certains mots se trouvent ou soient absents dans la ligne pour la sélectionner. On
peut même exiger la présence de groupes de mots, plutôt que de rechercher chaque mot séparément.
Plus approximatif, car on peut utiliser un astérisque * en fin de mot, pour préciser que le mot peut finir de n'importe quelle
manière.
Pour exiger la présence ou l'absence de certains mots, on utilise les caractères + et -. Un mot précédé par + devra être présent
dans la ligne et inversement, précédé par - il ne pourra pas être présent.
Partie 2 : Index, jointures et sous-requêtes
84/414
www.openclassrooms.com
