MySQL ifnull的嵌套使用说明
16lz
2021-12-11
MySQL ifnull的嵌套使用
在网上查询ifnull有没有嵌套使用的方式,但是貌似没有人提到过这个用法:大都是简单的判断一个字段是否为空,然后用另外一个值代替的方式使用;
即是:
select ifnull(a,b) from A ;
意思是如果vip_discount不为空,就返回它的值,若它的值为空就要进一步判断simple_discount字段是否为空,如果不为空就返回simple_discount的值,否则就返回一个空字符串。
这里我就想到了可不可以使用ifnull嵌套来判断达到我的目的。
在网上查了许久也没有发现有类似的博客,就寻思自己试试不就行啦:
select ifnull(vip_discount,ifnull(simple_discount,"")) as discount from A;
MYSQL之ifnull的那些坑
废话不多说,直接看SQL:
UPDATE lb_user uSET u.user_level = ( SELECT IFNULL(levelid, u.user_level) FROM lb_user_level WHERE `status` = 1 AND levelid > u.user_level AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money) ORDER BY levelid DESC LIMIT 1);
UPDATE lb_user uSET u.user_level = IFNULL(( SELECT levelid FROM lb_user_level WHERE `status` = 1 AND levelid > u.user_level AND (upgrade_score < u.empirical OR upgrade_total_money < u.total_consumption_money) ORDER BY levelid DESC LIMIT 1), u.user_level);
总结原因是因为:
MYSQL中IFNULL仅可以判断该数据存在的情况下为NULL,而不能判断该条数据没有查询到而为NULL的情况。
更多相关文章
- Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
- android scrollview中嵌套expandablelistview
- Android(安卓)解决 RecyclerView 嵌套 ScrollView 数据显示不全
- Android(安卓)Studio App LinearLayout多层布局嵌套
- android中opengl es基本方法使用说明
- Android(安卓)- ScrollView 使用小计 里面嵌套的View 如何设置全
- Android上oprofile使用说明
- Android上oprofile使用说明
- android studio 线性布局LinearLayout