expr book blank OS body strcmp subst stat literal

IF 表達式

IF( expr1 , expr2 , expr3 )

expr1 的值為 TRUE,則返回值為 expr2
expr2 的值為FALSE,則返回值為 expr3

如下:

SELECT IF(TRUE,1+1,1+2);
-> 2

SELECT IF(FALSE,1+1,1+2);
-> 3

SELECT IF(STRCMP("111","222"),"不相等","相等");
-> 不相等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

那麽這個 IF 有啥用處呢?舉個例子:
查找出售價為 50 的書,如果是 java 書的話,就要標註為 已售完
那麽對應的SQL語句該怎樣去寫呢?

select *,if(book_name=‘java‘,‘已賣完‘,‘有貨‘) as product_status from book where price =50
  • 1

IFNULL 表達式

IFNULL( expr1 , expr2 )

在 expr1 的值不為 NULL的情況下都返回 expr1,否則返回 expr2,如下:

SELECT IFNULL(NULL,"11");
-> 11

SELECT IFNULL("00","11");
-> 00

sql中的 IF 條件語句的用法