使用多列的MySQL搜索
我有一个表,其中有一个城市和描述列,我的网页有一个搜索字符串输入 如果我输入使用多列的MySQL搜索,mysql,sql,Mysql,Sql,我有一个表,其中有一个城市和描述列,我的网页有一个搜索字符串输入 如果我输入家具生产我会得到公司名称,这很好,但是如果我想做类似家具生产伦敦字符串与城市的事情,我不会得到任何结果 如何修复此查询以使用城市列或其他列 SELECT slug, title FROM catalog WHERE city || description LIKE '%$keyword% 如评论中所述,在DB上使用这种“流体”标准执行搜索将非常昂贵 不管怎样,如果这是你想要走的路,我的尝试如下: SELECT slug
家具生产
我会得到公司名称
,这很好,但是如果我想做类似家具生产伦敦
字符串与城市的事情,我不会得到任何结果
如何修复此查询以使用城市列或其他列
SELECT slug, title FROM catalog WHERE city || description LIKE '%$keyword%
如评论中所述,在DB上使用这种“流体”标准执行搜索将非常昂贵 不管怎样,如果这是你想要走的路,我的尝试如下:
SELECT slug, title FROM catalog
WHERE CONCAT(city, description) LIKE '$keyword'
OR CONCAT(description, city) LIKE '$keyword'
为了实现这一点,您可能需要将所有空格替换为%
,并可能在代码中添加前导和尾随%
我认为执行查询的代码是PHP,因此可以这样做:
$keyword = "%" . str_replace(" ", "%", $keyword) . "%";
正如我所说,这将对数据库造成很大的影响,特别是如果行数很重要的话。尝试优化全文搜索的列,并确保输入表单中的搜索条件不能太短
希望这有帮助 查找全文搜索。可以接受哪些搜索词?那么
伦敦家具生产
,伦敦家具
呢。任何满足这些多重搜索过滤器的查询都会有很差的性能。我认为用户可以用两种方式输入,所以如果查询可以用两种方式工作就好了。它可能会重复工作!这正是我需要的。谢谢我认为数据库中不会有太多的行,大约3k,但我会考虑全文搜索。