MySQL 按字段有没有值来排序
发布网友
发布时间:2022-05-02 01:51
我来回答
共1个回答
热心网友
时间:2022-05-02 03:20
会不会是你的数据库的某些设置上面,做了一些特殊的设定。
下面是我本地的 mysql 的执行结果:
mysql> CREATE TABLE tempuser(
-> id INT,
-> email VARCHAR(10)
-> );
Query OK, 0 rows affected (0.11 sec)
mysql> INSERT INTO tempuser
-> SELECT 1, 'a@163.com' UNION ALL
-> SELECT 2, 'b@163.com' UNION ALL
-> SELECT 3, 'c@163.com' UNION ALL
-> SELECT 4, NULL UNION ALL
-> SELECT 5, NULL;
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from tempuser order by email desc;
+------+-----------+
| id | email |
+------+-----------+
| 3 | c@163.com |
| 2 | b@163.com |
| 1 | a@163.com |
| 4 | NULL |
| 5 | NULL |
+------+-----------+
5 rows in set (0.00 sec)
如果email有值,就考前,如果是null,就靠后。
测试发现email is null的时候搜索结果都不出来了。
mysql> select * from tempuser where email is null;
+------+-------+
| id | email |
+------+-------+
| 4 | NULL |
| 5 | NULL |
+------+-------+
2 rows in set (0.00 sec)
先做个标记,我再去帮你看看,可能是什么原因。