我正在使用我的查询清理警告,并且遇到了以下错误:Code 1048: Column 'last_receipt' cannot be null
。
与错误相关联的查询会获取table_B
。on_dock
中的所有值,并使用简单的Update / Join语句将它们放入table_A
。last_receipt
。< / p>
但是,该列中没有一个标记为null
的值。但是,标记为'0000-00-00'
的值。我查看了文档,没有说明0000-00-00
为空,但似乎MySQL肯定会认同它。 0000-00-00
被null
认可,或者我今天刚刚失去它?
---------------------------------------- UPDATE ------ --------------------------
在我的加入查询中,我使用子查询基于table_B
将table_A
连接到order_id
:
SELECT MAX(on_dock) AS max_on_dock FROM table_B GROUP BY order_id
是否因为MAX函数可能会将这些值返回为空?
----------------------------------------更新2 ----- --------------------------
执行时:
UPDATE table_B SET on_dock = '0000-00-00' WHERE on_dock IS NULL
返回0 rows affected
执行时:
SELECT * FROM `table_B WHERE on_dock IS NULL
它返回30,000行但所有日期似乎都是'0000-00-00'
执行时:
SELECT * FROM `table_B WHERE on_dock IS '0000-00-00'
它返回相同的30,000行