我是否知道如何在mysql上合并多个字段? 例如:
我想将搜索字符串与A和B字段进行比较。
对不起伙计们,可能是我的问题不是那么详细。例如: A是'我' B是'爱'从表WHERE中选择A,B(均为A. B)喜欢'搜索字符串'
如果搜索结果是“我爱”或“爱我”,我怎么能得到一个返回的行。
谢谢。
答案 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%'
但是要小心使用通配符,因为如果它们出现在表达式的开头,它们可以阻止在查询中使用索引,就像我给出的示例一样。
你的问题措辞有点含糊不清。您可能意味着将A
和B
合并在一起,并将其与search string
进行比较。在这种情况下,您可以尝试以下内容(仅限MySQL):
SELECT A, B from `table` WHERE concat(A, B) LIKE '%search string%';
但是由于函数调用和通配符,不要指望它表现良好。
我在评论中看到你真正想要的是:
SELECT A, B from `table` WHERE 'search string' LIKE concat('%', A, '%')
AND 'search string' LIKE concat('%', B, '%');