處理資料庫記錄中的空值
查詢資料庫時,經常會遇到符合特定條件的記錄可能不存在的情況。預設情況下,如果沒有找到符合的記錄,大多數資料庫都會傳回錯誤。但是,通常希望傳回 null 值。
考慮以下範例查詢:
SELECT idnumber FROM dbo.database WHERE number = '9823474'
如果表中不存在指定的數字,則查詢將失敗。要傳回 null,我們可以使用子查詢,如下所示:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
這將原始查詢封裝在子查詢中,允許我們將「無行」視為空值。該技術已在各種資料庫中進行了測試和驗證,包括 PostgreSQL、SQLite、SQL Server、MySQL、Oracle、Firebird、DB2 和 SQLite。
在Oracle 中,語法需要從虛擬1 行表中進行選擇DUAL:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber FROM DUAL;
在MySQL 和Firebird 中,您可以從RDB$DATABASE 或SYSIBM.SYSDUMMY1 中進行選擇來使用類似的方法,
此解決方案提供了一種簡單且一致的方法來處理資料庫查詢中的空值,確保您的程式碼可以優雅地處理有效和不存在的記錄。
以上是資料庫查詢沒有符合記錄時如何傳回NULL而不是報錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!