如何在mysql中对多列进行排序

时间:2013-09-20 07:56:37

标签: mysql sql

我需要你的帮助!

我的数据库中有这个。

table name: tblClient

-------------------------------------------------
id        | stars1       | stars2      | stars3 |
-------------------------------------------------
1         | 5            | 0           | 0      |
2         | 4            | 0           | 0      |
3         | 0            | 5           | 0      |
4         | 0            | 4           | 0      |
5         | 0            | 0           | 5      |
-------------------------------------------------

提出此输出的SQL语句是什么?

-------------------------------------------------
id        | stars1       | stars2      | stars3 |
-------------------------------------------------
1         | 5            | 0           | 0      |
3         | 0            | 5           | 0      |
5         | 0            | 0           | 5      |
2         | 4            | 0           | 0      |
4         | 0            | 4           | 0      |
-------------------------------------------------

我已完成此SELECT * FROM tblClient ORDER BY stars1 DESC,stars2 DESC,stars3 DESC,id ASC但似乎输出错误。

任何帮助将不胜感激:)

4 个答案:

答案 0 :(得分:2)

以下是查询:

SELECT id,stars1, stars2 ,stars3
FROM(
  SELECT id,stars1, stars2 ,stars3, (stars1+stars2+stars3) as sum 
  FROM tblClient 
  GROUP by id
  ORDER BY sum desc) as sorted;

我为你做了一个小提琴,请在这里查看http://sqlfiddle.com/#!2/dd5d3/10

答案 1 :(得分:0)

试试这个

SELECT * FROM tblClient ORDER BY stars1 desc,stars2 desc,stars3 desc,id desc;

答案 2 :(得分:0)

SELECT * FROM tblCleint ORDER BY stars1 + stars2 + stars3 desc;

这是您的查询解决方案......

答案 3 :(得分:0)

SELECT 
  * 
FROM 
  tblClients 
ORDER BY 
  stars1*1.1+stars2*1.05+stars3 DESC
相关问题