检查其他字符串列表是否为%LIKE%另一个字符串

时间:2010-08-14 21:59:01

标签: mysql sql sql-like

是否有一种简短的方法来检查字符串列表是否为%LIKE%给定字符串?

例如:

书 动物 一个

对于“关于动物的书”,所有人都满足这个条件吗?

我知道我可以写出标题'%book%'和'%animal%'LIKE Title等等,但这看起来很笨拙。

我正在使用它来进行自动填充,我会返回每个单词都在结果中的结果。

4 个答案:

答案 0 :(得分:0)

您应该查看http://lucene.apache.org/solr/,它可以让您为数据编制索引,然后可以提供一个REST API,您可以调用该API来填充自动完成下拉列表。

答案 1 :(得分:0)

据我所知,您有两种选择:

1)执行包含许多WHERE子句的查询。

2)保留列的副本,其中所有单词都已排序。然后,您可以对搜索令牌进行排序并执行查询:

SELECT * FROM Table WHERE Title_sorted LIKE "%a%animal%book%"

答案 2 :(得分:0)

MySQL有一个全文搜索索引,我建议你研究一下,以获得有效的结果。与Lucene一起使用可能会因为自动完成而过度。

答案 3 :(得分:0)

mate ...将可搜索列放入“全文”列,然后执行

SELECT * FROM books WHERE MATCH(fulltext_column) AGAINST('animal book a')

最好的方式。 :)见http://devzone.zend.com/article/1304