0
今天我使用查詢 select 1000/0
預期的結果必然是錯誤或異常,但MySQL的返回我空,誰能告訴我爲什麼。它返回此消息爲什麼MySQL的返回NULL 1000/0
今天我使用查詢 select 1000/0
預期的結果必然是錯誤或異常,但MySQL的返回我空,誰能告訴我爲什麼。它返回此消息爲什麼MySQL的返回NULL 1000/0
這是well-documented行爲:
默認情況下,被零除產生NULL並且沒有任何警告的結果。 通過適當設置SQL模式,除以零可以是受限制的 。
在啓用
ERROR_FOR_DIVISION_BY_ZERO
SQL模式,MySQL的處理 除以零是不同的:
如果未啓用嚴格模式,則發出警告。
如果啓用了嚴格模式,插入和包含除0操作的更新被禁止,並且會發生錯誤。
我絕不會依賴於這種行爲(僅僅是因爲大多數其他數據庫產生錯誤)。用途:
select 100/nullif(0, 0)
所以你明確地產生的,而不是依賴於數據庫的設置的NULL
值。