これは私の初めての質問ですので、しばらくお待ちください.. :)
私たちは 2 人の開発者であり、同じテーブルと値を持つ同じ MySql DB を持っています。
1つはMySqlバージョン5.5で、他の開発者から言われたように(明らかに)正常に動作します。
MySql 5.1.44 (基本的な MAMP インストール) を使用しているマシンでは、次の奇妙な問題があります。
非常に大きなクエリ (私のものではない) は、「Column 'xd' cannot be null」というエラーで失敗します。
ピースを削除すると、次のようにスリム化されます。
select xd, avg(media) from questionario_punteggi where somefield = 1 union select 1,2
somefield = 1 のレコードがないため、最初の選択で空のセットが返されることに注意してください。
空のセット UNION を返す AVG() 関数を使用した SELECT があります 何かを返す別の SELECT (1,2 は、私が例として挙げた単なるランダムな値です)
- AVG() を削除すると、クエリが機能します。
- xd (および右側の 1,2 の 2) を削除すると、クエリは機能します。
- UNION を削除すると、クエリが機能します。
- somefield = 1 でレコードを設定すると、クエリが機能します。
- 他のマシン 5.5 では、クエリが機能します。
それ以外の場合、エラーは次のとおりです。
1048 - 列 'xd' を null にすることはできません
フィールドは次のとおりです。
`xd` char(3) NOT NULL DEFAULT '001',
`media` decimal(7,4) NOT NULL DEFAULT '0.0000',
`somefield` tinyint(4) NOT NULL DEFAULT '0',
おやおや。何か助けはありますか?ありがとう。
アップデート
MySql 5.5 より前に修正された MySql <= 5.1 のバグとして報告されています。詳細はわかりませんが、情報源を信頼しています