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


Sql Query to fetch a matching rows for two criteria

我有一个名为language的字段,其值类似于hindi,english

所以如果我选择hindienglish,我使用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);