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 可以使用的表達式也可以塞進去