Exemple : Recherche sur le titre, qui doit contenir "bonheur" mais ne peut pas contenir "ogres".
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('+bonheur -ogres' IN BOOLEAN MODE);
id
auteur
titre
4 Jacqueline Harpman Le Bonheur est dans le crime
Seule une ligne est ici sélectionnée, bien que "bonheur" soit présent dans deux. En effet, le second livre dont le titre contient
"bonheur" est "Le Bonheur des ogres", qui contient le mot interdit "ogres".
Pour spécifier un groupe de mots exigés, on utilise les doubles guillemets. Tous les mots entre doubles guillemets devront non
seulement être présents mais également apparaître dans l'ordre donné, et sans rien entre eux. Il faudra donc que l'on retrouve
exactement ces mots pour avoir un résultat.
Exemple : recherche sur titre, qui doit contenir tout le groupe de mot entre guillemets doubles.
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Terre à la Lune"' IN BOOLEAN MODE);
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Lune à la Terre"' IN BOOLEAN MODE);
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Terre la Lune"' IN BOOLEAN MODE);
Résultat première requête :
id
auteur
titre
14 Jules Verne De la Terre à la Lune
La première requête renverra bien un résultat, contrairement à la seconde (car les mots ne sont pas dans le bon ordre) et à la
troisième (car il manque le "à" dans la recherche - ou il y a un "à" en trop dans la ligne, ça dépend du point de vue).
"Voyage au centre de la Terre" n'est pas un résultat puisque seul le mot "Terre" est présent.
Pour utiliser l'astérisque, il suffit d'écrire le début du mot dont on est sûr, et de compléter avec un astérisque.
Exemple : recherche sur titre, sur tous les mots commençant par "petit".
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('petit*' IN BOOLEAN MODE);
Partie 2 : Index, jointures et sous-requêtes
85/414
www.openclassrooms.com
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('+bonheur -ogres' IN BOOLEAN MODE);
id
auteur
titre
4 Jacqueline Harpman Le Bonheur est dans le crime
Seule une ligne est ici sélectionnée, bien que "bonheur" soit présent dans deux. En effet, le second livre dont le titre contient
"bonheur" est "Le Bonheur des ogres", qui contient le mot interdit "ogres".
Pour spécifier un groupe de mots exigés, on utilise les doubles guillemets. Tous les mots entre doubles guillemets devront non
seulement être présents mais également apparaître dans l'ordre donné, et sans rien entre eux. Il faudra donc que l'on retrouve
exactement ces mots pour avoir un résultat.
Exemple : recherche sur titre, qui doit contenir tout le groupe de mot entre guillemets doubles.
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Terre à la Lune"' IN BOOLEAN MODE);
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Lune à la Terre"' IN BOOLEAN MODE);
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('"Terre la Lune"' IN BOOLEAN MODE);
Résultat première requête :
id
auteur
titre
14 Jules Verne De la Terre à la Lune
La première requête renverra bien un résultat, contrairement à la seconde (car les mots ne sont pas dans le bon ordre) et à la
troisième (car il manque le "à" dans la recherche - ou il y a un "à" en trop dans la ligne, ça dépend du point de vue).
"Voyage au centre de la Terre" n'est pas un résultat puisque seul le mot "Terre" est présent.
Pour utiliser l'astérisque, il suffit d'écrire le début du mot dont on est sûr, et de compléter avec un astérisque.
Exemple : recherche sur titre, sur tous les mots commençant par "petit".
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre)
AGAINST ('petit*' IN BOOLEAN MODE);
Partie 2 : Index, jointures et sous-requêtes
85/414
www.openclassrooms.com
