mysql中case when的使用

linlinlinfeng發表於2018-07-27

在寫mysql查詢語句的時候如果需要根據查詢結果判斷來返回值的時候可以使用高階函式CASE ....when

MySQL 的 case when 分為簡單函式和搜尋函式兩種:

  1. 簡單函式
    CASE expression
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE result
    END
  2. 搜尋函式
    CASE 
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE result
    END

1.簡單函式

CASE expression WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END

CASE 表示函式開始,END 表示函式結束。如果 condition1 成立,則返回 result1, 如果 condition2 成立,則返回 result2,當全部不成立則返回else後面的 result,而當有一個成立之後,後面的就不執行了。

案例:我需要根據查詢的姓名為‘zhangsan’給他一個true狀態,其他的為false

SELECT *,CASE tb.username WHEN ('zhangsan') THEN TRUE ELSE FALSE END as state  from tb_user tb

執行結果:

2.搜尋函式

我想根據使用者的積分來判斷使用者的級別,使用搜尋函式的寫法

相關文章