我正在构建一个搜索框,用于查询数据库并自动填充以下建议。

我希望能够按以下顺序优先处理结果:

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/

10-11 02:46