我的表有一个城市和描述列,我的网页只有一个搜索字符串输入..
如果我输入我的输入furniture production
我得到company name
,所以很好,但是如果我想做这样的furniture production london
字符串与城市,我没有得到任何结果。
如何修复此查询以使用city列或其他列?
SELECT slug, title FROM catalog WHERE city || description LIKE '%$keyword%
答案 0 :(得分:3)
如评论中所述,使用此类"流体"进行搜索。数据库上的标准非常昂贵。
无论如何,如果这是你想要走的道路,那就是我的尝试:
SELECT slug, title FROM catalog
WHERE CONCAT(city, description) LIKE '$keyword'
OR CONCAT(description, city) LIKE '$keyword'
为了完成这项工作,您可能希望用%
替换所有空格,并且可能在代码中放置前导和尾随%
。
我认为执行查询的代码是PHP,所以这可以做到:
$keyword = "%" . str_replace(" ", "%", $keyword) . "%";
就像我说的那样,数据库上的非常非常很重,特别是如果行数很重要的话。尝试优化全文搜索列,并确保搜索条件在输入表单中不会太短。
希望这有帮助!