J'essaie de faire une recherche plein texte sur un champ pour faire correspondre des parties spécifiques d'une chaîne. Considérons une longue chaîne contenant des valeurs de tableau comme 201 ::: 1 ### 193 ::: 5 ### 193 ::: 6 ### 202 ::: 6. ### sépare un élément de tableau et ::: sépare la clé => val. Maintenant, ma compréhension de la correspondance est qu'il peut correspondre à des parties d'une chaîne en mode booléen. mais quand je fais quelque chose dans les lignes demysql fulltext MATCH, CONTRE
`SELECT
a.settings
, MATCH(a.settings) AGAINST('201:::1') as relevance
, b.maxrelevance
, (MATCH(a.settings) AGAINST('201:::1'))/b.maxrelevance*100 as relevanceperc
FROM
users_profile a
, (SELECT MAX(MATCH(settings) AGAINST('201:::1')) as maxrelevance FROM users_profile LIMIT 1) b
WHERE
MATCH(a.settings) AGAINST('201:::1')
ORDER BY
relevance DESC;`
Tableau exemple
CREATE TABLE users_profile
(
id
int (11) NULL par défaut,
texte profile
,
views
int (11) NULL par défaut ,
friends_list
text,
settings
text,
points
int (11) NULL par défaut,
KEY id
(id
),
FULLTEXT KEY settings
(settings
)
) MOTEUR = MyISAM DEFAULT CHARSET = UTF-8;
Je reçois zéro résultat. Toutes les idées sont les bienvenues.
Afficher un exemple de table et les champs marque que vous whant à sélectionner, s'il vous plaît. –
J'ai mis à jour avec la structure de la table. Seuls les paramètres de champ doivent être recherchés – mbouclas
Je pense que ":" est réservé à la recherche booléenne. Jetez un oeil à: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_ft_boolean_syntax et essayez de modifier ce paramètre. Cela pourrait aider. Regardez également tous les autres paramètres commençant par "ft_" sur cette page. – eisberg