您可以IFNULL()
为此使用。让我们首先创建一个表-
mysql> create table DemoTable -> ( -> added_date date, -> updated_date date -> );
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable values('2019-01-10','2019-06-01'); mysql> insert into DemoTable values('2019-05-19',NULL); mysql> insert into DemoTable values(NULL,'2019-09-05');
使用select语句显示表中的所有记录-
mysql> select *from DemoTable;
这将产生以下输出-
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | 2019-01-10 | 2019-06-01 | | 2019-05-19 | NULL | | NULL | 2019-09-05 | +------------+--------------+ 3 rows in set (0.00 sec)
情况1-如果您希望结果按降序排列。
这是用于选择带有addd_date和Updated_date的行的查询。
mysql> select *from DemoTable order by ifnull(updated_date,added_date) desc;
这将产生以下输出-
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | NULL | 2019-09-05 | | 2019-01-10 | 2019-06-01 | | 2019-05-19 | NULL | +------------+--------------+ 3 rows in set (0.00 sec)
情况2-如果您希望结果按升序排列。
这是查询以选择带有addd_date和Updated_date的行-
mysql> select *from DemoTable order by ifnull(updated_date,added_date);
这将产生以下输出-
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | 2019-05-19 | NULL | | 2019-01-10 | 2019-06-01 | | NULL | 2019-09-05 | +------------+--------------+ 3 rows in set (0.00 sec)