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

MySQL:=true so với true trên BOOLEAN. Khi nào thì nên sử dụng cái nào? Và cái nào là nhà cung cấp độc lập?

MySQL thực sự đang đánh lừa bạn. Nó hoàn toàn không có loại cột boolean :

Ngoài ra, các ký tự boolean không như vậy :

Xét rằng:

  • Nhiều hệ thống cơ sở dữ liệu cũng không có boolean (ít nhất là trong các kiểu cột và SQL tiêu chuẩn)
  • MySQL không có cách dễ dàng để thực thi 0 hoặc 1 trong BOOLEAN

Kết luận của tôi sẽ là:

  • Bạn sẽ phải sử dụng cờ WHERE IS flag hoặc chỉ cờ WHERE flag bởi vì = chỉ đơn giản là không hoạt động chính xác. Cái nào, có thể là một vấn đề của sở thích.
  • Dù bạn chọn gì, sẽ không có tùy chọn nào độc lập với nhà cung cấp. Ví dụ, Oracle thậm chí sẽ không chạy một trong hai.

Chỉnh sửa: nếu đa nền tảng là bắt buộc, tôi sẽ làm điều này:

WHERE flag=0
WHERE flag<>0

Tôi chắc rằng tất cả chúng ta đều đã làm điều đó rất nhiều lần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nối chuỗi với giá trị trường trong MySQL

  2. MySQL:Cột tạm thời tăng tự động trong câu lệnh chọn

  3. sql để chọn 10 bản ghi hàng đầu

  4. Cảnh báo PHP:mysqli_connect ():(HY000 / 2002):Kết nối bị từ chối

  5. Sách hướng dẫn cài đặt MySQL Ansible Idempotent