Puis-je utiliser des caractères génériques dans “DANS” MySQL déclaration?
Je voudrais lancer quelque chose comme:
select * from table where field in ("%apple%", "%orange%")
Est-il un moyen? Ou au moins est-il une meilleure façon que de façon dynamique de construction de requête pour chaque mot-clé:
select * from table where field like "%apple%" or field like "%orange%"
Grâce.
OriginalL'auteur serg | 2009-10-30
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que c'est mieux que ce que vous est venu avec, mais vous pouvez utiliser MySQL regex capacités:
Aussi, comme d'autres l'ont mentionné, vous pourriez utiliser MySQL de recherche de texte intégral capacités (mais seulement si vous êtes en utilisant le moteur MyISAM).
Je ne pense pas que vous allez obtenir de bonnes performances de la regex, car pas d'index sera utilisé. Je recommande la recherche de texte intégral approche.
Ouais, mais il a aussi ses inconvénients: seulement les tables myisam, seule fin des caractères génériques.
OriginalL'auteur Asaph
Vous devriez probablement regarder MySQL est l'indexation de texte intégral, si c'est ce que vous essayez de faire.
OriginalL'auteur Rowland Shaw
Peut-être une meilleure solution serait d'utiliser un la recherche booléenne à l'encontre d'un index de texte intégral?
EDIT: je l'ai regardé et il prend en charge les caractères génériques au fin de mots:
OriginalL'auteur ʞɔıu
Dans Oracle, vous pouvez le faire:
Vous pouvez utiliser plus complexe regexp. Le " je " rend insensible.
Voir Oracle docs
OriginalL'auteur Eric Schwa Pivnik