喜欢单个表中的2个字段

时间:2010-12-10 05:57:39

标签: mysql sql-like

我是否知道如何在mysql上合并多个字段? 例如:

我想将搜索字符串与A和B字段进行比较。

  

从表WHERE中选择A,B(均为A.   B)喜欢'搜索字符串'

对不起伙计们,可能是我的问题不是那么详细。例如: A是'我' B是'爱'

如果搜索结果是“我爱”或“爱我”,我怎么能得到一个返回的行。

谢谢。

2 个答案:

答案 0 :(得分:1)

SELECT A, B from example WHERE (A LIKE 'search_string' and B LIKE 'search_string');

答案 1 :(得分:0)

我修改了查询的语法,以正确检查这两个字段:

SELECT A, B from `table` WHERE A LIKE 'search string' AND B LIKE 'search string'

但也许你想在LIKE子句中使用一些通配符,否则它与=的字面匹配没有区别。

SELECT A, B from `table` WHERE A LIKE '%search string%' AND B LIKE '%search string%'

但是要小心使用通配符,因为如果它们出现在表达式的开头,它们可以阻止在查询中使用索引,就像我给出的示例一样。

UPDATE:

你的问题措辞有点含糊不清。您可能意味着将AB合并在一起,并将其与search string进行比较。在这种情况下,您可以尝试以下内容(仅限MySQL):

SELECT A, B from `table` WHERE concat(A, B) LIKE '%search string%';

但是由于函数调用和通配符,不要指望它表现良好。

更新#2:

我在评论中看到你真正想要的是:

SELECT A, B from `table` WHERE 'search string' LIKE concat('%', A, '%')
    AND 'search string' LIKE concat('%', B, '%');