ほとんどの場合、ended
値は SQLNULL
値でした。null値の論理not
はまだnullであるため、値がended
変更されていないため、DBは「変更なし」を適切に報告しています-最初はnullであり、まだnullでした:
mysql> create table foo (x boolean);
mysql> insert into foo values (null);
Query OK, 1 row affected (0.04 sec)
mysql> update foo set x=not x;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> update foo set x=not x;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
に注意してくださいChanged: 0
。ただし、x を null 以外の値にリセットすると、次のようになります。
mysql> update foo set x=true;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update foo set x=not x;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
行はすぐに変化し始めます。