我有一张这样的桌子。
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在它的行中有一个,一个。
答案 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的答案更适合。