我正在构建一个搜索框,用于查询数据库并自动填充以下建议。
我希望能够按以下顺序优先处理结果:
1-完全匹配
2-以相同的几个字母开头
3-将字符串包含在数据库中的某个位置
我有一条SQL语句
SELECT *
FROM Products
WHERE ProductName LIKE ?
OR ProductName LIKE ?
GROUP BY ProductName
ORDER BY ProductName ASC
LIMIT 10
在搜索单词“计算机”的示例中
输入“ co”时,应显示
合作
电脑
电脑桌
交流
但是当进一步搜索到“计算机”时
电脑
电脑设备
第一个绑定参数包含%computer%,第二个包含c%omputer%
感谢您的帮助,如果您需要任何澄清,请告诉我。
最佳答案
SELECT * FROM Products WHERE ProductName = ? LIMIT 10 UNION
SELECT * FROM Products WHERE ProductName LIKE ? LIMIT 10 UNION
SELECT * FROM Products WHERE ProductName LIKE ? LIMIT 10
这很好,首先?持有“合作”第二?持有“ co%”,第三个?持有“%co%”
首先优先考虑精确匹配,然后从字符串开始,然后包含字符串。
关于jquery - 如何在SQL中赋予优先于一条like语句的权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12117019/