2016-10-30 150 views

回答

1

這是well-documented行爲:

默認情況下,被零除產生NULL並且沒有任何警告的結果。 通過適當設置SQL模式,除以零可以是受限制的 。

在啓用ERROR_FOR_DIVISION_BY_ZERO SQL模式,MySQL的處理 除以零是不同的:

  • 如果未啓用嚴格模式,則發出警告。

  • 如果啓用了嚴格模式,插入和包含除0操作的更新被禁止,並且會發生錯誤。

我絕不會依賴於這種行爲(僅僅是因爲大多數其他數據庫產生錯誤)。用途:

select 100/nullif(0, 0) 

所以你明確地產生的,而不是依賴於數據庫的設置的NULL值。