Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách chèn giá trị BOOL vào cơ sở dữ liệu MySQL

TRUEFALSE là các từ khóa và không nên được trích dẫn dưới dạng chuỗi:

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

Bằng cách trích dẫn chúng dưới dạng chuỗi, MySQL sau đó sẽ truyền chúng sang số nguyên tương đương (vì boolean thực sự chỉ là một INT một byte trong MySQL), được chuyển thành 0 đối với bất kỳ chuỗi không phải số nào. Do đó, bạn nhận được 0 cho cả hai giá trị trong bảng của bạn.

Các chuỗi không phải số được truyền đến 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 |
+------------------------+-------------------------+-------------------------+

Nhưng các từ khóa trả về INT tương ứng của chúng đại diện:

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

Cũng xin lưu ý rằng tôi đã thay thế các dấu ngoặc kép của bạn bằng các dấu ngoặc đơn như là các hộp bao chuỗi SQL tiêu chuẩn hơn. Cuối cùng, tôi đã thay thế các chuỗi trống của bạn cho id với NULL . Chuỗi trống có thể đưa ra cảnh báo.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa ngoại MySQL

  2. Đặt kết quả biến, từ truy vấn

  3. Có thể sử dụng Crosstab / Pivot Query trong MySQL không?

  4. MySQL CHÈN VÀO ... GIÁ TRỊ và CHỌN

  5. Đơn giản chỉ cần chuyển đổi số 5 chữ số trong cơ sở dữ liệu mysql thành một ngày