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

Re: [1/2HS] Interrogations MySQL



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 02/02/2016 11:34, andre_debian@numericable.fr wrote:
> 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é
> 

Bonjour André,

Je en regardant la requête SQL utilisant la fonction AGAINST que tu
essais d’exécuter, nous pouvoir voir que tu tentes d'utiliser le
caractère joker (wildcard) '%' afin de compléter les mots clefs
servant de critère à ta requête à l'image de ce que tu pourrais faire
à l'aide de la fonction LIKE.

La documentation de MySQL au sujet du couple de fonction MATCH et
AGAINST
(https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_m
atch),
ne fait pas référence à la possibilité d'utiliser des caractères
jokers (wildcard) à l'image de ce que tu pourrais faire avec la
fonction LIKE
(https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.htm
l#operator_like).
Il semblerait que tu sois contraint à l’utilisation de mot complet.

Bon courage,

Florian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJWsJ2xAAoJEBGYNnE0a7qPrQkP+wW7za2iwl2660wgE4Z/vV2z
Ot7luM0iVfUx4DgL4rOEll0d16gxMxg2ihLYA8/bZfgV6iLVSJe+gtCB0aImJ+GT
Z8ClpuHoh9MVKZlsaoczxJdUXmhY95z9affk15eZ0ZHp8y7T8bznvLdaUnUrZQ/H
II1S3W4wnc5nftmJ3w9F7bmCnq/uiob0jduKaTO63cRQBtpbhOEGdxoF1GGsOj9T
iEbOpE5TRYgr2j8B1N3nug7b+z32AyDjaj58LEl34vrfgcboJgY0w4G5c9Qw9iwm
yZkEZrs9wUf2OTQHelLteaOXAWs+vIWJIpkxlHa2DxSE0oafyC8nIFcFaJDk1vjl
bNDiWkz1me4ls1aqjKVFCoAo28ddeOK5UsujyS0u1VhwnUXejzHTLt1mnZeiPdkB
44mOL9Cx0FHEUjL3F74VdAZwYU3ydTZo0Blu7g0/AoKP56WFjKilYRNRTuEatC2B
q00IB5pdxhBWDMKpznh1o0HHKC6wPbTvvEAHyu1Cd/224K0T/LlVuHMrpEU/HZpj
PN2lNzS7yzRP+gsYhO1E6+jHDLfmPzx6Tvkwe5xx11xcwIxKZRJQ9ZbAPllcyXsV
JP6fZhYqhwjRH75p/FU4irmVZa+fKJy2IynCDIGlj+sqpwZXHdF8HuKocFhJh/nA
FWwx+TkvJwGqbg2Dk/zf
=wXgU
-----END PGP SIGNATURE-----


Reply to: