我有称为语言的字段,值类似于hindi,english
。
因此,如果我选择hindi
和english
,我会使用like子句,因此这些行会出现在结果中。
但如果我使用:
SELECT * FROM `rr` WHERE rr LIKE '%english,hindi%' LIMIT 0 , 30
此行不会出现在结果中。
那么任何人都可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:0)
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 BOOLEAN MODE执行布尔全文搜索 修改。使用此修饰符,某些字符具有特殊含义 在搜索字符串中的单词的开头或结尾。在里面 在查询之后,+和 - 运算符表示单词是 分别需要出现或缺席才能进行比赛。 因此,查询检索包含单词“val1”的所有行 但是不包含“val2”这个词:
mysql> SELECT * FROM TABLE WHERE MATCH (COL1,COL2)
-> AGAINST ('+val1 -val2' IN BOOLEAN MODE);