is_done が true のときに NOT is_done にするとなぜ false に切り替わるのですか?

NOT は否定を表すので is_done が true の場合、NOT is_done は false になります。
2023年3月2日
ユーザー
("UPDATE todos SET is_done = NOT is_done WHERE id = :id");

is_done カラムの id 番目の値を NOT is_done に更新しているとおもうのですが、元々 main.sql で

INSERT INTO todos (title, is_done) VALUES ('bbb', true);

となっており仮に true となっている所を NOT is_done にするとなぜ false に切り替わるのですか?
また is_done BOOL となっているのに truefalse 以外の値 NOT is_done で更新してもいいのでしょうか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?