MySQL仅按特定行排序

时间:2015-07-30 08:29:11

标签: php mysql

我有一个MySQL查询,它以下列方式返回结果:

id | count | type
------------------
1  | 1000  | 1
2  | 100   | 2
3  | 80    | 2

我想仅按type2的行排序结果。其他行的顺序无关紧要,尽管通过它们对顺序的控制可能是有用的。因此,生成的顺序为id = 2,然后是id = 3,然后是id = 1。如果不在后期处理中这样做,这可能吗?

4 个答案:

答案 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

Fiddle demo