MySQL查询首先按降序设置负值,然后按升序设置正值
为此,您可以使用UNION。让我们首先创建一个表-
mysql> create table DemoTable -> ( -> Number int -> );
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable values(10); mysql> insert into DemoTable values(100); mysql> insert into DemoTable values(-9); mysql> insert into DemoTable values(-190); mysql> insert into DemoTable values(190); mysql> insert into DemoTable values(0); mysql> insert into DemoTable values(140);
使用select语句显示表中的所有记录-
mysql> select *from DemoTable;
输出结果
这将产生以下输出-
+--------+ | Number | +--------+ | 10 | | 100 | | -9 | | -190 | | 190 | | 0 | | 140 | +--------+ 7 rows in set (0.00 sec)
以下是查询以降序显示负值,然后以升序显示正值。最初,我们显示0-
mysql> (select *from DemoTable where Number=0) -> union -> (select *from DemoTable where Number < 0 order by Number desc) -> union -> (select *from DemoTable where Number > 0 order by Number);
输出
这将产生以下输出-
+--------+ | Number | +--------+ | 0 | | -9 | | -190 | | 10 | | 100 | | 190 | | 140 | +--------+ 7 rows in set (0.03 sec)