要按列排序并在末尾放置空记录,请使用ORDER By,MySQL中的“ is null”。语法如下-
select *from yourTableName order by if(yourColumName = ’ ’ or yourColumName is null,1,0),yourColumnName;
为了理解上述语法,让我们创建一个表。创建表的查询如下-
mysql> create table emptyCellsAtEnd −> ( −> ProductId varchar(100) −> );
使用insert命令在表中插入一些记录。这些记录中有些是空的。查询如下-
mysql> insert into emptyCellsAtEnd values(''); mysql> insert into emptyCellsAtEnd values('P-1'); mysql> insert into emptyCellsAtEnd values('P-2'); mysql> insert into emptyCellsAtEnd values(''); mysql> insert into emptyCellsAtEnd values('P-3'); mysql> insert into emptyCellsAtEnd values('P-4'); mysql> insert into emptyCellsAtEnd values('P-9'); mysql> insert into emptyCellsAtEnd values(''); mysql> insert into emptyCellsAtEnd values('P-8');
使用select语句显示表中的所有记录。查询如下-
mysql> select *from emptyCellsAtEnd;
以下是输出-
+-----------+ | ProductId | +-----------+ | | | P-1 | | P-2 | | | | P-3 | | P-4 | | P-9 | | | | P-8 | +-----------+ 9 rows in set (0.00 sec)
现在,您可以实施我们开头讨论的查询,以最后放置空单元格。将空单元格放在末尾的查询如下-
mysql> select *from emptyCellsAtEnd −> order by if(ProductId = '' or ProductId is null,1,0),ProductId;
以下是输出-
+-----------+ | ProductId | +-----------+ | P-1 | | P-2 | | P-3 | | P-4 | | P-8 | | P-9 | | | | | | | +-----------+ 9 rows in set (0.00 sec)