使用MySQL,我可以对一列进行排序,但允许0排在最后吗?
您可以对一列进行排序,在ORDERBY的帮助下,最后一个为0。语法如下-
select *from yourTableName order by yourFieldName = 0,yourFieldName;
为了理解上述概念,让我们创建一个表。创建表的查询如下-
mysql> create table SortColumnZeroAtLastDemo −> ( −> RankNumber int −> );
现在您可以使用以下查询在表中插入记录-
mysql> insert into SortColumnZeroAtLastDemo values(100); mysql> insert into SortColumnZeroAtLastDemo values(0); mysql> insert into SortColumnZeroAtLastDemo values(0); mysql> insert into SortColumnZeroAtLastDemo values(50); mysql> insert into SortColumnZeroAtLastDemo values(10); mysql> insert into SortColumnZeroAtLastDemo values(0); mysql> insert into SortColumnZeroAtLastDemo values(40);
在select语句的帮助下显示表中的所有记录。查询如下-
mysql> select *from SortColumnZeroAtLastDemo;
以下是输出-
+------------+ | RankNumber | +------------+ | 100 | | 0 | | 0 | | 50 | | 10 | | 0 | | 40 | +------------+ 7 rows in set (0.00 sec)
这是使用列开头对语法进行排序并将值0设置为最后的查询-
mysql> select *from SortColumnZeroAtLastDemo order by RankNumber = 0,RankNumber;
以下是输出-
+------------+ | RankNumber | +------------+ | 10 | | 40 | | 50 | | 100 | | 0 | | 0 | | 0 | +------------+ 7 rows in set (0.00 sec)