我的应用程序是在vb.net中构建的,SQL Server Compact作为数据库,所以我无法使用全文索引。
这是我的数据......
MainTable
field1
搜索词= B C
预期结果 =搜索字词的任意组合=第1,2,4行
以下是我目前正在做的事情......
我正在将搜索字词B C
置换为包含%B%C%
和%C%B%
的数组,并将这些值插入tempTable
的字段1中。
所以我的SQL看起来像这样:
SELECT * FROM MainTable INNER JOIN tempTable ON MainTable.field1 LIKE tempTable.field1
在这个简单的例子中,它确实正确地返回了预期的结果。但是,我的搜索字词可以包含更多值。例如,6个搜索词B C D E F G
在置换时具有720个不同的值,并且当使用更多搜索词时,排列会呈指数级增长...这并不好。
有更好的方法吗?
答案 0 :(得分:1)
以下内容适用于您的示例:
Select * from table where field1 like '%[BC]%'
但它也会返回仅包含" B"或" C"。您是否需要任何顺序或一个或多个字符?
编辑:然后以下内容可行:
Select * from test_data where col1 LIKE '%Apple%' and col1 like '%Dog%'
请参阅此处的演示:http://rextester.com/edit/LNDQ49764