0
今日私はクエリを使用します select 1000/0
期待される結果はエラーまたは例外でなければなりませんが、mysqlは私にnullを返す必要があります。それは、このメッセージなぜMySQLがnullを返す1000/0
今日私はクエリを使用します select 1000/0
期待される結果はエラーまたは例外でなければなりませんが、mysqlは私にnullを返す必要があります。それは、このメッセージなぜMySQLがnullを返す1000/0
を返すこれはwell-documented動作です:デフォルトでは
、ゼロによる除算はNULLと警告なしの結果を生成します。 SQLモードを適切に設定することにより、ゼロ除算を に制限することができます。有効
ERROR_FOR_DIVISION_BY_ZERO
SQLモードでは、MySQLは異なり、ゼロによる除算 を処理します。strictモードが有効でない場合
、警告が発生します。
strictモードが有効な場合、ゼロ除算を含む挿入と更新は禁止され、エラーが発生します。
私は(他のほとんどのデータベースは、エラーを発生さという理由だけで)この動作に依存していることはありません。用途:
select 100/nullif(0, 0)
ので、あなたが明示的にNULL
値の代わりに、データベースの設定に頼っを生み出します。