Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Memasukkan Nilai BOOL ke Database MySQL

TRUE dan FALSE adalah kata kunci, dan tidak boleh dikutip sebagai string:

INSERT INTO first VALUES (NULL, 'G22', TRUE);
INSERT INTO first VALUES (NULL, 'G23', FALSE);

Dengan mengutipnya sebagai string, MySQL kemudian akan mentransmisikannya ke bilangan bulat yang setara (karena boolean sebenarnya hanya satu byte INT di MySQL), yang diterjemahkan menjadi nol untuk string non-numerik apa pun. Dengan demikian, Anda mendapatkan 0 untuk kedua nilai di tabel Anda.

String non-numerik dilemparkan ke nol:

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 |
+------------------------+-------------------------+-------------------------+

Tetapi kata kunci mengembalikan INT yang sesuai representasi:

mysql> SELECT TRUE, FALSE;
+------+-------+
| TRUE | FALSE |
+------+-------+
|    1 |     0 |
+------+-------+

Perhatikan juga, bahwa saya telah mengganti tanda kutip ganda Anda dengan tanda kutip tunggal seperti halnya lampiran string SQL yang lebih standar. Akhirnya, saya telah mengganti string kosong Anda untuk id dengan NULL . String kosong dapat mengeluarkan peringatan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa STRAIGHT_JOIN meningkatkan kueri ini secara drastis, dan apa artinya jika ditulis setelah kata kunci SELECT?

  2. ERROR 1130 (HY000):Host '' tidak diizinkan untuk terhubung ke server MySQL ini

  3. Bagaimana Anda memaksa mysql LIKE menjadi case sensitif?

  4. Pemformatan baris perintah MySQL dengan UTF8

  5. php mysql_connect Peringatan nonaktifkan