IFNULL(expr1,expr2)
  如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

  mysql> select IFNULL(1,0);
   -> 1
  mysql> select IFNULL(0,10);
   -> 0
  mysql> select IFNULL(1/0,10);
   -> 10
  mysql> select IFNULL(1/0,'yes');
   -> 'yes'
  IF(expr1,expr2,expr3)
  如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。

  mysql> select IF(1>2,2,3);
   -> 3
  mysql> select
IF(1<2,'yes','no');
   -> 'yes'

=======================================

MySQL函数之STRCMP()

  • STRCMP(expr1,expr2)

若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回  -1,其它情况返回 1 。

mysql> SELECT STRCMP('text', 'text2');

-> -1

mysql> SELECT STRCMP('text2', 'text');

-> 1

mysql> SELECT STRCMP('text', 'text');

-> 0

在执行比较时,STRCMP() 使用当前字符集。这使得默认的比较区分大小写,当操作数中的一个或两个都是二进制字符串时除外。

========================================================================

举例

SELECT
        DISTINCT c.id AS crs_code,
        c.name AS crs_name,
        c.score,
        ci.cover_img_url,
        ci.crs_introduction,
        cc.name,
        usr.real_name,
        usr.nick_name,
        usr.email,
        usrp.phone,
        IFNULL(SUM(playcount),
        0) AS seenums  
    FROM
        y_course c
    LEFT JOIN
        y_crs_info ci
            ON c.id = ci.crs_id
    LEFT JOIN
        y_school s
            ON c.sch_id = s.id
    LEFT JOIN
        y_crs_catagory cc
            ON c.cat_id = cc.id
    LEFT JOIN
        y_crs_team tt
            ON tt.crs_id = c.id
    LEFT JOIN
        y_user usr
            ON usr.id = tt.team_usr_id
    LEFT JOIN
        y_usr_profile usrp
            ON usr.id = usrp.usr_id  
    LEFT JOIN
        y_crs_file cf
            ON cf.crs_id = c.id  
    LEFT JOIN
        y_video v
            ON v.vid = cf.url  
    WHERE
        1 = 1                                      
        AND c.status = 1   
        AND cf.type = 0     
        AND c.id NOT IN(
            68
        )  
        AND (
            c.is_yl_visiable = 1
            OR c.sch_id = '117'
        )
        AND tt.team_dict_id = (
            SELECT
                dcc.id
            FROM
                y_dict dcc
            WHERE
                dcc.name='主讲教师'
        )
    GROUP BY
        crs_code  
    ORDER BY
        seenums DESC  LIMIT 0,
        10

mysql ifnull if的更多相关文章

  1. 对MYSQL IFNULL函数的使用进行了具体的叙述

    下文对MYSQL IFNULL函数的使用进行了具体的叙述.供您參考学习.假设您在MYSQL IFNULL函数使用方面遇到过类似的问题,最好还是一看. MYSQL IFNULL(expr1,expr2) ...

  2. MYSQL IFNULL使用功能

    稍后的MYSQL IFNULL使用此功能的特定叙事,供大家参考学习,假设你MYSQL IFNULL条款的使用功能类别遇到似问题.最好看. MYSQL IFNULL(expr1,expr2)       ...

  3. MySQL IFNULL基本用法

    MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFNULL函数返回第二个参数. 两个参数可以是文字值或表达式. 以下说明了IFNU ...

  4. MYSQL IFNULL函数的使用

    IFNULL函数是MYSQL数据库中最重要的函数之一,下面就对该函数的使用方面进行分析,希望对您能够有所帮助. 下文对MYSQL IFNULL函数的使用进行了详细的叙述,供您参考学习,如果您在MYSQ ...

  5. MySQL IFNULL()函数用法MySQL

    用法说明:IFNULL(expr1,expr2) 如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2. IFNULL()返回一个数字或字符串值,取决于它被使用 ...

  6. MySql IFNULL 联表查询出来的null 如何赋值

    mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0.mysql> ...

  7. MySQL IFNULL() 函数

    MySQL函数 IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值. IFNULL() 函数语法格式为: IF ...

  8. MySQl ifnull()和substr()

    SUBSTR(str,pos,len) substr用来截取字符串: str 被截取的字符串 pos 开始位置 len 长度 举个例子: substr('abc',1,2)='ab' IFNULL(e ...

  9. mysql ifnull判断为空设置默认值

    IFNULL(count,0) as count select IFNULL(count,0) as count from table_name 可以设置当某个字段为空的时候默认值.

随机推荐

  1. html网页编码问题

    之前碰到过一些html编码乱码问题,都理解的模模糊糊,问了别人解释的也是模模糊糊.近期要做前端这个问题研究了下仅仅须要两句话就能非常清楚的解释了(之前问的那些人是不是自己都没理解非常郁闷.) < ...

  2. Cocos2d-X 动作展示《一》

    因为Cocos2d-X中的动作较多,我将全部的动作制作成了一个滚动视图.每一个滚动视图上都有动作名,单击滚动视图就能够展示对应的动作 程序效果图: 使用滚动视图实现动作切换 动作展示 程序代码: 首先 ...

  3. VS EF Error: Configuration Error extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider"

    错误截图: Configuration Error :<add extension=".edmx" type="System.Data.Entity.Design. ...

  4. Jquery 遍历数组之$().each方法与$.each()方法介绍

    $().each() 对于这个方法,在dom处理上用的比较多,如果一个html页面上面有多个checkbox,这时用$().each来处理checkbox是比较不错的; $("input[t ...

  5. jbpmAPI-6

    第六章流程. 6.1. What is BPMN 2.0 业务流程模型和符号(BPMN)2.0规范是OMG规范,不仅定义了一个标准的业务流程的图形化表述(如BPMN 1. x),但现在还包括执行语义定 ...

  6. js表格排序 & 去除字符串空格

    // a:列数 bool:排序升序判断参数 true false Str:支持多列 function newUnitSort(a, bool, str) { var oTable = document ...

  7. mac上搭建svn服务器

    1.terminal 执行svnadmin create 库地址/库名,生成的即为svn库根地址. 2.修改对应目录下conf/svnserve.conf文件: anon-access = read ...

  8. [LeetCode]题解(python):131-Palindrome Partitioning

    题目来源: https://leetcode.com/problems/palindrome-partitioning/ 题意分析: 给定一个字符串s,将s拆成若干个子字符串,使得所有的子字符串都是回 ...

  9. perl lwp关闭ssl校验

    use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; use HTTP::Response; use Encode; use File:: ...

  10. 记NOIP分数出来前

    咩~成绩还没有出来呢!但是拿到了每个人的程序,还有一堆民间的数据.我测了好多不同的数据,基本上D1T1,D2T1,D2T2的都是暴力解决掉的,没有什么问题,唯一就是D1T2的link那一题,写的时候2 ...