使用多列进行MySQL搜索

时间:2016-08-02 10:44:39

标签: mysql sql

我的表有一个城市和描述列,我的网页只有一个搜索字符串输入..

如果我输入我的输入furniture production我得到company name,所以很好,但是如果我想做这样的furniture production london字符串与城市,我没有得到任何结果。

如何修复此查询以使用city列或其他列?

SELECT slug, title FROM catalog WHERE city || description LIKE '%$keyword%

1 个答案:

答案 0 :(得分:3)

如评论中所述,使用此类"流体"进行搜索。数据库上的标准非常昂贵。

无论如何,如果这是你想要走的道路,那就是我的尝试:

SELECT slug, title FROM catalog 
WHERE CONCAT(city, description) LIKE '$keyword'
OR CONCAT(description, city) LIKE '$keyword'

为了完成这项工作,您可能希望用%替换所有空格,并且可能在代码中放置前导和尾随%

我认为执行查询的代码是PHP,所以这可以做到:

$keyword = "%" . str_replace(" ", "%", $keyword) . "%";

就像我说的那样,数据库上的非常非常很重,特别是如果行数很重要的话。尝试优化全文搜索列,并确保搜索条件在输入表单中不会太短。

希望这有帮助!