我有一个名为language的字段,其值类似于hindi,english
。
所以如果我选择hindi
和english
,我使用like子句,所以这行出现在结果中。
但是如果我使用:
SELECT * FROM `rr` WHERE rr LIKE '%english,hindi%' LIMIT 0 , 30
这一行不会出现在结果中。
谁能帮我解决这个问题?
BOOLEAN MODE
可能会帮助你
SELECT * FROM rr WHERE MATCH (rr)
AGAINST ('+english +hindi' IN BOOLEAN MODE) LIMIT 0 , 30;
用法:
SELECT * FROM tablename WHERE MATCH (col1, col2) AGAINST ('string to be searched')
基于这里的例子
MySQL可以使用IN布尔模式执行布尔全文搜索修饰符。有了这个修饰语,某些字符就有了特殊的含义在搜索字符串中单词的开头或结尾。在在查询之后,"+"answers"-"操作符表示一个单词是必须分别在场或缺席才能进行比赛。因此,查询将检索包含单词"val1"的所有行。但是不包含单词" val2 ":
mysql> SELECT * FROM TABLE WHERE MATCH (COL1,COL2)
-> AGAINST ('+val1 -val2' IN BOOLEAN MODE);