MySQL基础问题


我本打算将最后一列排序,将空值设定为10,但是按照第一行语句执行下来空值没有参与排序,按照图片中第二行语句执行下来,空值=10,并参与了排序,想知道为什么?
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
4条回答
默认
最新
采纳答案后不可修改和取消
MySQL5.7.29能正常排序,是不是一下效果,最好把表结构也发出来。
CREATE TABLE `milk_tea` (
`id` int(11) NOT NULL,
`in_price` decimal(10,1) DEFAULT NULL,
`sale_price` decimal(10,1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `milk_tea` VALUES (1,15.5,NULL),(2,2.1,2.5),(3,10.8,15.0),(4,9.3,15.0),(5,8.8,15.0),(6,12.3,20.0);
mysql> select id,in_price,sale_price ,IFNULL(sale_price,10)
from milk_tea;
+----+----------+------------+-----------------------+
| id | in_price | sale_price | IFNULL(sale_price,10) |
+----+----------+------------+-----------------------+
| 1 | 15.5 | NULL | 10.0 |
| 2 | 2.1 | 2.5 | 2.5 |
| 3 | 10.8 | 15.0 | 15.0 |
| 4 | 9.3 | 15.0 | 15.0 |
| 5 | 8.8 | 15.0 | 15.0 |
| 6 | 12.3 | 20.0 | 20.0 |
+----+----------+------------+-----------------------+
6 rows in set (0.00 sec)
mysql> select id,in_price,sale_price ,IFNULL(sale_price,10)
from milk_tea
order by IFNULL(sale_price,10) ;
+----+----------+------------+-----------------------+
| id | in_price | sale_price | IFNULL(sale_price,10) |
+----+----------+------------+-----------------------+
| 2 | 2.1 | 2.5 | 2.5 |
| 1 | 15.5 | NULL | 10.0 |
| 3 | 10.8 | 15.0 | 15.0 |
| 4 | 9.3 | 15.0 | 15.0 |
| 5 | 8.8 | 15.0 | 15.0 |
| 6 | 12.3 | 20.0 | 20.0 |
+----+----------+------------+-----------------------+
评论
有用 0采纳答案后不可修改和取消
1.需要表结构create 创建命令。
show create table table_name;
2.数据库版本。
select version();
3.还有答复的那样的效果吗?
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


