先按最近 3 个月排序,然后按字母顺序在 MySQL 中进行排序?
我们首先创建一个表 −
mysql> create table DemoTable1526 -> ( -> CustomerName varchar(20), -> PurchaseDate date -> ); Query OK, 0 rows affected (0.67 sec)
使用 insert 命令在表中插入一些记录。这里,我们插入了 2019 年的日期 −
mysql> insert into DemoTable1526 values('Adam','2019-06-01'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1526 values('Sam','2019-04-26'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable1526 values('Chris','2019-05-24'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable1526 values('David','2019-10-10'); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable1526 values('Bob','2019-12-31'); Query OK, 1 row affected (0.23 sec)
使用 select 语句显示表中的所有记录 −
mysql> select * from DemoTable1526;
这将产生以下输出 −
+--------------+--------------+ | CustomerName | PurchaseDate | +--------------+--------------+ | Adam | 2019-06-01 | | Sam | 2019-04-26 | | Chris | 2019-05-24 | | David | 2019-10-10 | | Bob | 2019-12-31 | +--------------+--------------+ 5 rows in set (0.00 sec)
当前日期如下 −
mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-10-08 | +------------+ 1 row in set (0.00 sec)
这是一个查询,按 2019 年的最后 3 个月排序,然后按字母顺序排序 −
mysql> select * from DemoTable1526 -> order by PurchaseDate > curdate() - interval 3 month desc,CustomerName;
这将产生以下输出 −
+--------------+--------------+ | CustomerName | PurchaseDate | +--------------+--------------+ | Bob | 2019-12-31 | | David | 2019-10-10 | | Adam | 2019-06-01 | | Chris | 2019-05-24 | | Sam | 2019-04-26 | +--------------+--------------+ 5 rows in set (0.00 sec)
广告