回答編集履歴

1

補足を追記

2016/09/28 06:17

投稿

KiyoshiMotoki
KiyoshiMotoki

スコア4791

test CHANGED
@@ -199,3 +199,31 @@
199
199
  3 rows in set (0.00 sec)
200
200
 
201
201
  ```
202
+
203
+
204
+
205
+ # 追記
206
+
207
+
208
+
209
+ MySQLでは、`col_1, col_2, col_3`のいずれかが NULL の場合、
210
+
211
+ ```
212
+
213
+ col_1 + col_2 + col_3 = NULL
214
+
215
+ ```
216
+
217
+ となります。
218
+
219
+ [https://dev.mysql.com/doc/refman/5.6/ja/problems-with-null.html](https://dev.mysql.com/doc/refman/5.6/ja/problems-with-null.html)
220
+
221
+ > NULL を含む式は、式に関連する演算子および関数のドキュメントに示されている場合を除き、常に NULL 値を生成します。
222
+
223
+
224
+
225
+ "合計をだしたカラム"に NULL が格納されるのを避けたい場合、
226
+
227
+ yambejp様のコメントにある通り、`col_1, col_2, col_3`に NOT NULL 制約をつけるか、
228
+
229
+ NULL を適切な値に変換した上で合計を計算するなどの対処をしてください。