Sql Query为两个条件获取匹配的行

时间:2015-08-20 07:14:05

标签: php mysql

我有称为语言的字段,值类似于hindi,english

因此,如果我选择hindienglish,我会使用like子句,因此这些行会出现在结果中。

但如果我使用:

SELECT * FROM  `rr` WHERE rr LIKE  '%english,hindi%' LIMIT 0 , 30

此行不会出现在结果中。

那么任何人都可以帮我解决这个问题吗?

提前致谢。

1 个答案:

答案 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);