TRUE
およびFALSE
はキーワードであり、文字列として引用しないでください:
INSERT INTO first VALUES (NULL, 'G22', TRUE);
INSERT INTO first VALUES (NULL, 'G23', FALSE);
それらを文字列として引用することにより、MySQLはそれらを同等の整数にキャストします(ブール値は実際には1バイトのINT
であるため) MySQLの場合)、これは数値以外の文字列の場合はゼロに変換されます。したがって、0
を取得します テーブルの両方の値に対して。
ゼロにキャストされた非数値文字列:
mysql> SELECT CAST('TRUE' AS SIGNED), CAST('FALSE' AS SIGNED), CAST('12345' AS SIGNED);
+------------------------+-------------------------+-------------------------+
| CAST('TRUE' AS SIGNED) | CAST('FALSE' AS SIGNED) | CAST('12345' AS SIGNED) |
+------------------------+-------------------------+-------------------------+
| 0 | 0 | 12345 |
+------------------------+-------------------------+-------------------------+
ただし、キーワードは対応するINT
を返します 表現:
mysql> SELECT TRUE, FALSE;
+------+-------+
| TRUE | FALSE |
+------+-------+
| 1 | 0 |
+------+-------+
また、より標準的なSQL文字列エンクロージャーと同様に、二重引用符を一重引用符に置き換えたことにも注意してください。最後に、空の文字列をid
に置き換えました NULL
を使用 。空の文字列は警告を発する場合があります。