列 A を持つテーブル T があります。A はデフォルトの NULL で始まりました。40 行後、デフォルトを 1 に変更しました。3 つの行の値は 2 でした。列 A が 2 ではないすべての行を選択し、それらを新しいデフォルトの 1 に設定しようとしました (これは、テーブルを変更しました)。私が最初に試した:
update T set A=1 where A != 2;
なだ。うまくいきませんでした。ゼロ行が選択されました。次に試しました:
update T set A=1 where !(A=2);
いいえ、何もありません。更新に何か問題があるかどうかを確認するために、それらを選択にプラグインしようとしましたが、それらも何も返しませんでした。MySQL リファレンス マニュアルには、!= と ! は有効な演算子であり、そのコンテキストでは完全に有効である必要があります。IS NULL を使用して最終的に目標を達成しましたが、これらのステートメントは機能するはずでした。それで、何が得られますか?なぜそれがうまくいかなかったのですか?
MySQL バージョンを実行しています: 5.1.41-3ubuntu12.6 (Ubuntu)