如何使用具有特定值的列数重新排序表

时间:2014-09-18 10:53:32

标签: mysql sql

我有一张这样的桌子。

ID   F01   F02   FO3
1    1     0     0
2    1     1     0
3    1     1     1

我想要像这样的表格重新编写

ID   F01   F02   FO3
3    1     1     1
2    1     1     0
1    1     0     0

因为第3行有3个,其中一个在行中。 第2行,有两个,一个在它的行中。 和row1在它的行中有一个,一个。

2 个答案:

答案 0 :(得分:1)

如果您的意思是重新排序,请不要这样做。除非您使用ORDER BY指定它,否则数据库表中没有“订单”。

SELECT
*
FROM
your_table
ORDER BY F01 + F02 + F03 DESC

如果您正在寻找不是1的特定值,您可以这样做:

SELECT
*
FROM
your_table
ORDER BY IF(F01 = 'some_value', 1, 0) + IF(F02 = 'some_value', 1, 0) + IF(F03 = 'some_value', 1, 0) DESC

答案 1 :(得分:0)

如果您要依次查找每列所订购的结果,请执行以下操作:

  SELECT *
    FROM table1
ORDER BY f01 DESC, fo2 DESC, f03 DESC

拆分ORDER BY中的列允许使用索引。

如果您正在寻找值的总和,那么fancyPant的答案更适合。