[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[1/2HS] Interrogations MySQL



Bonjour,

Désolé de cette question pas 100% Debian,
mais MySQL tourne sous Debian Jessie :-)

$brief est une variable correspondant à un mot clé
qui ne peut contenir que 3 infos maxi séparées par un espace.

On va supposer que le mot clé = "paris"

SELECT DISTINCT email, prenom, famille, ville FROM table 
WHERE MATCH (email, prenom, famille, ville) 
AGAINST  ('+$brief[0] +$brief[1] +$brief[2]'  IN BOOLEAN MODE)

et la base affiche toutes les personnes qui ont une info liée à Paris.

Mais si le mot clé =" par"
la base ne m'affiche aucun résultat.
Elle ne va matcher que les infos qui contiennent * exactement * "par"

J'ai tenté cette méthode (ajouter un "%" de part et d'autres de la variable) :
AGAINST ('+%$brief[0]% +%$brief[1]% +%$brief[2]%' IN BOOLEAN MODE)
ça ne fonctionne pas.

Dommage, car c'est utile lorsque on est pas sûr de l'orthographe d'un champ,
et que  l'on a retenu que ses x premières lettres.

Il y a cette méthode mais trop basique car elle ne permet pas des recherches
sur mots clés multiples :
SELECT DISTINCT email, prenom, famille, ville FROM table 
WHERE email LIKE '%$brief%' OR ville LIKE '%$brief%' ...

Ma question : comment le faire avec : ... WHERE MATCH ...  AGAINST

Merci.

André


Reply to: