zoukankan      html  css  js  c++  java
  • mysql

      

     

     coalesce( sum(score), 0) :    返回第一个不为NULL的参数,如果所有参数都为NULL,此函数返回NULL;当它使用2个参数时,和IFNULL函数作用相同。

    ifnull(u.name,'')

    if( isnull(t2.name), 0, t2.name) as stu_name


    mysql 不推荐使用 (is not null) 和 (not in 进行 子查询),以及它们的替代查询方法

    mysql 的查询中,如果使用 (not in 进行 子查询) 或者  (is not null) 后,会让查询速度变得很慢,笔者十分不建议使用。下面有笔者总结的代替方法。
    
    代替  (not in 进行 子查询 ):将子查询 转变为 表连接,相关的逻辑写在 表连接 的关系上
    
    代替  (is not null):将 is not null  的字段,使用 ifnull()替换为其他值,然后 ifnull()!=其他值,就能进行筛选了

    示例(https://blog.csdn.net/YABIGNSHI/article/details/102937435):

      IFNULL(zla.serialNum,'kong' )!='kong'

    在测试环境试验,执行时间从1分钟47秒降为了0.4秒,效果杠杠的。

    完整示例:

      

    where  (s.supplier_id != '' and IFNULL(s.supplier_id,'label' ) != 'label') and ...

    mysql 字段 is not null 和 字段 !=null

        https://www.cnblogs.com/wuyun-blog/p/10179832.html 

    Mysql查询is null,is not null,!=使用或索引

        https://www.jianshu.com/p/73cd91ee1f71  :    由图可知,is null, is not null, !=查询, 是可以使用索引的。这和mysql的查询优化有关。不要轻易被网上的一些文章误导。

    MySQL中is not null和!=null和<>null的区别
    2018.08.07 10:09 4276浏览
    在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大!
    为什么会出现这种情况呢?
    null 表示什么也不是, 不能=>< … 所有的判断,结果都是false,所有只能用 is null进行判断。
    默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对!= Null的判断会永远返回0行,但没有语法错误。
    如果你一定想要使用!= Null来判断,需要加上这个语句:
    set ANSI_NULLS off
    这时你会发现IS NOT NULL!= null 是等效的
    一个字段如果设为“NULL”,表示如果这个字段的值为空时,自动插入一个“NULL”值。
    一个字段如果设为“NOT NULL”,表示如果这个字段的值为空时,不自动插入“NULL”值(任其无值)。
    所以,设为“NULL”的意思反而是“不能无值”(由MYSQL自动赋“NULL”值),而设为“NOT NULL”是“可以无值”
    
    原文来源:https://www.imooc.com/article/50826
  • 相关阅读:
    两台centos,用yum install 安装,一台成功,一台失败
    django 删除默认app
    FFmpeg
    安装nginx
    django markdown格式化变量
    安装python3.8
    安装 docker
    Centos7 安装selenium webdriver环境
    收集网页数据方法
    logstash 6.3.2下载地址
  • 原文地址:https://www.cnblogs.com/hahajava/p/13067786.html
Copyright © 2011-2022 走看看