最近專案是從SQL SERVER移到MYSQL,
許多語法搬到MYSQL上會有一些差異,
在MSSQL中你可能會這樣使用ISNULL
SELECT ISNULL(columnName,default) FROM TABLE
SELECT ISNULL(NULL,1)
-->1
表示當某個欄位為NULL時,呈現default。
但在MYSQL中的ISNULL用法是,
SELECT ISNULL(columnName) FROM TABLE
SELECT ISNULL(NULL)
-->1
SELECT ISNULL('TEST')
-->0
這代表判斷某個欄位是不是NULL,是的話呈現1,否則呈現0。
而IFNULL可以表示有預設值的呈現,
SELECT IFNULL(columnName,default) FROM TABLE
SELECT IFNULL(NULL,1)
-->1
用法同MSSQL的ISNULL,判斷為NULL時呈現default,
另一個比較不常見的語法NULLIF,
SELECT NULLIF(columnName,columnName) FROM TABLE
SELECT NULLIF(1,1)
-->NULL
SELECT NULLIF(1,0)
-->1
意思是當兩個值相等時呈現NULL,否則呈現1。