MySQL CASE:SQL 語法的 switch 和 if-else

..

MySQL、MSSQL 的 SQL 語法裏面,想要做 if-else 或 switch,可以怎麼做呢?

MySQL CASE:SQL 語法的 switch 和 if-else

SQL 語法想要做 switch / if-else 可以使用 CASE 來達成

SWITCH 語法

CASE colname   WHEN 'condition string' THEN 'condition string match'   WHEN 'condition string2' THEN 'condition string2 match'   WHEN condition int THEN 'condition int match 3'   ELSE 'condition not match' END

IF-ELSE 語法(不能用 ==)

CASE   WHEN colname > value THEN 'bigger'   WHER colname <= value2 THEN 'lost'   ELSE 'tie' END

CASE 語法可以用在 SELECT、INSERT、UPDATE、DELETE,如下範例:

Switch 寫法範例

select CASE colname    WHEN 'aa' THEN 'match aa'    WHEN 'bb' THEN 'match bb'    WHEN 10   THEN '1'    WHEN 100  THEN 1000    ELSE 'ccc'                                                                                                                                               END FROM table_name;

if / else 寫法範例

SELECT CASE    WHEN colname > 5 THEN 'yes'    WHEN colname >= 4 THEN 'no'    WHEN colname <= 3 THEN 'match 3'    ELSE 'not match' END FROM table_name;

UPDATE switch 寫法範例

UPDATE table_name SET colname = (     CASE colname2         WHEN 'AAA' THEN 300         ELSE 200     END )                                                                                                                                                           WHERE id = 1;
  • 註:
    • colname2 = 'AAA', colname = 300
    • colname2 != 'AAA', colname = 200

相關網頁

想在手機閱讀更多MySQL資訊?下載【香港矽谷】Android應用
分享到Facebook