mysql中IFNULL()和COALESCE()函數替代null


在mysql中isnull()函數不能作為替代null值!
如下:
首先有個名字為business的表:
mysql測試isnull,ifnull

SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2
  • 1

直接運行就會報錯:

錯誤代碼: 1582 Incorrect parameter count in the call to native function 'isnull'
  • 1
  • 2

所以,isnull()函數在mysql中就行不通了。可以用ifnull()和coalesce()代替。如下:
使用ifnull()函數:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=2
  • 1

運行結果:
mysql_ifnull
當查詢的值不為null時:

SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=1
  • 1

結果如下:
mysql_ifnull2
使用coalesce()函數:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=2
  • 1

結果如下:
mysql_coalesce
當查詢值不為null時:

SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=1
  • 1

mysql_coalesce2

其中:coalesce()還可以返回第一個不為null的值。如下:

SELECT COALESCE(business_name,district_id,id) AS bus_coalesce FROM business WHERE id=2
  • 1

mysql_coalesce3

那么,isnull()在mysql中怎么用呢?答案就是用在where后面。如下:

SELECT * FROM business WHERE ISNULL(business_name)
  • 1

結果如下:
mysql_isnull()
同樣,is null 和is not null 也是用在where后面。

SELECT * FROM business WHERE business_name IS NULL
  • 1

結果如下:
mysql_isnull()

SELECT * FROM business WHERE business_name IS NOT NULL
  • 1

mysql_isnotnull


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM