MYSQL的if函数用法

语法:
if(A,A,B)
if函数的用法很类似于PHP的三目运算符,如果A为true,则会选择第一个参数,为false则选择第二个参数

  • 场景一:表A和表B两个表有同一个字段s,根据字段type(1:取表A的,2:取表B),来选择要取A字段还是B字段
    可以这样写
select if(A.type=1, A.s, B.s) as S ,Name,Sex from A 
LEFT JOIN B on...where.... 
  • 场景二:表A和表B两个表分别有相同字段s,t,如果A表的s不为空,则取表A的s,否则取表A的t,如果表A的s,t字段同时为空,则判断表B的s字段是否为空,不为空则取表B的s字段,为空则取表B的t字段
    (其实就是嵌套使用if函数)
select 
if(A.s is not null , A.s, 
    if(A.t is not null, A.t, 
         if(B.s is not null, B.s, B.t)
    )
) as ST
from A....

住:如果要给用if函数查询的字段起别名,一定要在最外层的if()右括号外面写 if(...) as 别名
小结:其实就是类似于php三元运算符的使用,而且在if函数里面还能嵌套其他的MYSQL的函数,例如date_format()等。

你可能感兴趣的:(MYSQL的if函数用法)