这是我的第一个问题,所以请耐心等待.. ?
我们是两个开发人员,两者都具有相同的表和值的MySql DB.
一个是MySql版本5.5并且正常工作(显然),其他开发人员告诉我.
在我的机器上使用MySql 5.1.44(一个基本的MAMP安装)我有以下奇怪的问题.
一个非常大的查询(不是我的)失败,错误“列’xd’不能为空”.
删除件我把它简化为:
select xd, avg(media) from questionario_punteggi where somefield = 1 union select 1,2
注意,没有记录somefield = 1所以第一个选择返回一个空集
我们有一个SELECT with AVG()函数返回一个空集UNION另一个SELECT返回一些东西(1,2只是我现在放的随机值作为例子)
>如果我删除了AVG(),则查询有效.
>如果我删除xd(以及右边的1,2中的2),查询将起作用.
>如果我删除UNION,查询将起作用.
>如果我用somefield = 1设置一些记录,则查询有效.
>在另一台机器5.5上查询有效.
否则错误是:
1048 – 列’xd’不能为空
领域是:
`xd` char(3) NOT NULL DEFAULT '001',
`media` decimal(7,4) NOT NULL DEFAULT '0.0000',
`somefield` tinyint(4) NOT NULL DEFAULT '0',
天哪.有帮助吗?谢谢.
UPDATE
据我所知,MySql< = 5.1中的BUG是在MySql 5.5之前修复的.我没有细节,但我相信来源