1

我们有一个搜索查询,允许用户输入一个字符串,然后通过 LIKE '%string%' 搜索 3 个单独的字段。这些字段是:

  • 姓名
  • 描述
  • 类型

然后什么时候返回结果,现在就随意订购它们。我们希望结果首先按在 Name 字段中找到的结果排序,然后按在 Description 字段中找到的项目排序,最后在 Type 字段中排序。因为我们也有与之相关的分页和排序,所以我们真的希望它在一个记录集中返回。这甚至可能吗?

提前致谢。

4

3 回答 3

1

在 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
;
于 2013-02-11T07:53:23.537 回答
0

你可以试试这个:

Select * 
from Tablename 
where Name like '%string%' 
and description like '%string%' 
and type like '%string%' 
order by name,description,type
于 2013-02-11T05:21:16.357 回答
0

请试试这个:

Select * 
from Table 
where Name like '%string%' 
and description like '%string%' 
and type like '%string%' 
order by name,description,type
于 2013-02-11T05:32:14.700 回答