IF
SELECT id,IF(display=1,"禁止使用",display) from jobs LIMIT 10
如果display的列的值为1 则值变成禁止使用不是的话就还是使用原来列的值
SELECT IF(name like "%PHP%" and name LIKE "%JAVA%",CONCAT("java",name),id) from jobs LIMIT 10
模糊匹配表达式
可以在where 表达式添加的都可以塞进这个if 表达式中
IFNULL
SELECT id,IFNULL(deleted_at,"已经删除了") from jobs LIMIT 10
判断列的值是否为null 为null 就替换成其他值
其他这个表达式也可以替换成
SELECT id,IF(deleted_at is null,"已经删除了",deleted_at) from jobs LIMIT 10
CASE
这个就相当于逻辑语言的 switch case default
SELECT id,case WHEN wage=56 THEN "小时工" WHen wage=20 THEN "正式工" ELSE "临时工" END from jobs LIMIT 10
根据这个wage 字段不同值返回不同的信息,最后的else 就相当于default的意思,这里面 每一个when匹配成功之后,后面的when 就不在匹配,相当于自己加上brek了,当然也可以同时匹配多个列,而且where 可以使用的表达式也可以塞进去