我知道标题不明确,但我想要的是搜索与用户搜索的确切条件匹配的产品,如果该搜索中没有太多记录,所以我想显示其他结果以及用户搜索结果。
例子:假设我有字段
产品名称 价格 类别 子类别 开始日期 结束日期 名称 城市 州 国家/地区
用户可以从以上所有字段进行搜索,但我希望用户搜索应该始终看到至少 12 个结果,无论其他结果是否符合所有条件,这意味着搜索应该从完全匹配搜索扩展到小失败者(或者可能否)匹配标准。
我知道我可以通过多个查询轻松实现这一目标,但重点是我想通过一个或更少的查询实现这一目标。
在这方面的任何帮助将不胜感激。
最佳答案
如果表扫描就可以得到结果,最简单的方法很可能只是按命中数对行进行排名,并显示排名最好的 12 个;
SELECT
*,
CASE WHEN productname='prod#1' THEN 1 ELSE 0 END +
...
CASE WHEN city='city#1' THEN 1 ELSE 0 END +
...
CASE WHEN country='country' THEN 1 ELSE 0 END rank
FROM search
ORDER BY rank DESC
LIMIT 12
关于php - 如何获取最符合用户搜索条件的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524273/