通过找到它们的字段对SQL结果进行排序

时间:2013-02-11 05:15:45

标签: mysql sql

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

  • 名称
  • 描述
  • 类型

然后返回结果,现在只需任意订购。我们希望首先按名称字段中的结果排序结果,然后在“描述”字段中找到项目,然后最后在“类型”字段中排序。因为我们有分页和排序也与此相关,我们真的希望它在一个记录集中返回。这甚至可能吗?

提前致谢。

3 个答案:

答案 0 :(得分: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
;

答案 1 :(得分:0)

你可以试试这个:

Select * 
from Tablename 
where Name like '%string%' 
and description like '%string%' 
and type like '%string%' 
order by name,description,type

答案 2 :(得分:0)

请试试这个:

Select * 
from Table 
where Name like '%string%' 
and description like '%string%' 
and type like '%string%' 
order by name,description,type