我们有一个搜索查询,允许用户输入一个字符串,然后通过 LIKE '%string%' 搜索 3 个单独的字段。这些字段是:
- 姓名
- 描述
- 类型
然后什么时候返回结果,现在就随意订购它们。我们希望结果首先按在 Name 字段中找到的结果排序,然后按在 Description 字段中找到的项目排序,最后在 Type 字段中排序。因为我们也有与之相关的分页和排序,所以我们真的希望它在一个记录集中返回。这甚至可能吗?
提前致谢。
在 MySQL 中,以下应该可以工作:
SELECT *
FROM atable
WHERE Name LIKE '%string%'
OR Description LIKE '%string%'
OR Type LIKE '%string%'
ORDER BY
CASE
WHEN Name LIKE '%string%' THEN 1
WHEN Description LIKE '%string%' THEN 2
WHEN Type LIKE '%string%' THEN 3
END
;
你可以试试这个:
Select *
from Tablename
where Name like '%string%'
and description like '%string%'
and type like '%string%'
order by name,description,type
请试试这个:
Select *
from Table
where Name like '%string%'
and description like '%string%'
and type like '%string%'
order by name,description,type