MYSQL常用函数,IF函数,IFNULL,CASE运算符

100人浏览   2025-04-16 00:43:20


IFNULL函数和COALESCE

在ADDRESS表格里,一些地址是null,想让他成为暂未填写而不是空值

那么我直接写select,然后直接写IFNULL后面接着我要更换的列就可以了

假设phone的列是空值,也可以直接还函数,或者我想返回的是其他的值

比如返回的是id,直接调整参数就可以了


所以,IFNULL函数,用其他值替换空值,而COALESCE函数,提供可以替换的值,返回的是这堆值中的第一个非空值。

IF函数 The IF Function

一个订单表,可以用IF函数进行区分,比如按照时间或金额。

比如今年下单的是S级用户,其他的是a,执行有这个结果。

直接搬运一道题,写一段查询,生成结果为many times或者once

select product_id,name

from products

然后加入一列

join order_items USING (product_id)

然后运用统计函数

select product_id,name

count(*)as orders

from products

join order_items USING (product_id)

group by product_id,name

执行查询,得到每个列的订单数,最后加入IF

if (count(*)>1,'many times','once') as frequence

完整写出来就是

select product_id,name

count(*)as orders

if (count(*)>1,'many times','once') as frequency

from products

join order_items USING (product_id)

group by product_id,name

CASE 运算符 The Case Operator

结合IF函数,是,返回一结果,不是,返回另一个结果

如果有几个表达式需要测试,那怎么办呢?

比如上面的今年就是S级别用户,其他就是A级别用户

如果今天是S,去年是A,前年是B,可以用CASE运算

开头case,中间是条件,结尾end,执行得出结果


如果运用积分和黄金,白银,青铜区分的话,可以这么写

书写如下

完结~

相关推荐