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的情况。

更多相关文章

  1. Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
  2. android scrollview中嵌套expandablelistview
  3. Android(安卓)解决 RecyclerView 嵌套 ScrollView 数据显示不全
  4. Android(安卓)Studio App LinearLayout多层布局嵌套
  5. android中opengl es基本方法使用说明
  6. Android(安卓)- ScrollView 使用小计 里面嵌套的View 如何设置全
  7. Android上oprofile使用说明
  8. Android上oprofile使用说明
  9. android studio 线性布局LinearLayout

随机推荐

  1. 使用Android studio分析内存泄露
  2. The android SDK requaires Android Deve
  3. android调用cocos2dx例子
  4. android 设置边框圆角
  5. android IP
  6. android 易忘知识
  7. Android之Notification
  8. java.net.SocketTimeoutException: conne
  9. Android基础-Android的生命周期
  10. Android 自定义进度条