假设我们使用关键词:keyword1,keyword2,keyword3 进行搜索
数据库中有一个名为“name”的列包含以下记录:
1: John Doe 2: Samuel Doe 3: John Smith 4: Anna Smith
现在进行查询:
SELECT * FROM users WHERE (name LIKE "%John%" OR name LIKE "%Doe%")
它将选择记录:1、2、3(按此顺序)
但我想按关键字排序
例如keyword1=John,keyword2=Doe
所以应该按关键字列出:1、3、2(因为我想在搜索“John”后执行搜索“Doe”)
我考虑使用SELECT DISTINCT FROM (...... UNION .....)
但以另一种方式进行排序会更容易些(真正的查询非常长)
有什么技巧可以创建这样的顺序吗?
ORDER BY
子句中的LIKE
只会在被WHERE
子句匹配的数据上执行,所以应该更快。 - D'Arcy Rittich