【发布时间】:2014-12-02 12:10:39
【问题描述】:
我有一个包含 2 列的表,名为 column_A 和 column_B。
此表中的一行在列_A 中包含值 AAA,在列_B 中包含值 BBB。
如果我用
搜索 AAA 或 BBBSELECT * FROM table WHERE column_A LIKE '%AAA%' OR column_B LIKE '%AAA%';
或
SELECT * FROM table WHERE column_A LIKE '%BBB%' OR column_B LIKE '%BBB%';
我得到一个结果。
但是,如果我搜索 '%AAA BBB%' 或 '%AAA xyz%' 我没有得到任何结果。
我搜索的值来自搜索表单。只要用户只输入 BBB 或 AAA 就可以了,当他使用 AAA 或 BBB 和其他东西的组合时,搜索不起作用。
我该如何解决这个问题?我是否需要像这里提到的那样拆分搜索词:http://www.iamcal.com/publish/articles/php/search/
【问题讨论】:
-
您需要拆分搜索词或使用全文搜索。
-
'%AAA xyz% 表示您正在寻找 'AAA xyz' + 不是 'AAA' 或 'xyz' 的东西
-
您的搜索方式正确吗?如果你想得到包含column_a的字符串,那么你需要把它转过来,不是吗即WHERE 'AAA xyz' like CONCAT('%',column_A,'%')?