我有一个MySQL查询,它以下列方式返回结果:
id | count | type
------------------
1 | 1000 | 1
2 | 100 | 2
3 | 80 | 2
我想仅按type
为2
的行排序结果。其他行的顺序无关紧要,尽管通过它们对顺序的控制可能是有用的。因此,生成的顺序为id = 2
,然后是id = 3
,然后是id = 1
。如果不在后期处理中这样做,这可能吗?
答案 0 :(得分:5)
如果您想首先订购类型为2
的行
SELECT ... ORDER BY IF(type = 2, 0, 1) ASC
答案 1 :(得分:0)
如果您想按列排序,请
SELECT * FROM table ORDER BY type ASC;
如果您只想选择type
= 2的行,那么它是:
SELECT * FROM table WHERE type = '2'
答案 2 :(得分:0)
我认为这些sql对你有用
select * from table where type=2
union
select * from table
谢谢。
答案 3 :(得分:0)
您可以使用field
:
SELECT * FROM TableName ORDER BY field(type,2,1)
结果:
id count type
----------------
2 100 2
3 80 2
1 1000 1
请参阅SQL Fiddle
中的演示NB:您可以根据需要使用任意数量的参数。
例如:field(type,2,1,6,3,5,4)
它会按照您在field()
如果您不想指定所有值,最后可以通过指定反向参数来使用desc
。
前:
SELECT * FROM TableName ORDER BY field(type,3,2,5) desc