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

Có lý do gì để không sử dụng <=> (toán tử =null safe) trong mysql thay vì =?

Bạn đã yêu cầu một số ví dụ trong thế giới thực. Giả sử bạn có một chương trình dành cho thanh thiếu niên trong khu dân cư hoặc chương trình tương tự, và một trong những yêu cầu là bọn trẻ chỉ được ở chung phòng với người cùng giới. Bạn có trường M / F có thể nullable trong cơ sở dữ liệu của mình - có thể null bởi vì nguồn cấp dữ liệu của bạn chưa hoàn chỉnh (bạn vẫn đang theo dõi một số dữ liệu). Mã đối sánh phòng của bạn chắc chắn không được khớp với sinh viên nơi t1.Gender <=> t2 .Gender, bởi vì nó có thể kết thúc việc kết hợp hai đứa trẻ không xác định giới tính, những đứa trẻ có thể có giới tính khác nhau. Thay vào đó, bạn đối sánh ở nơi chúng bằng nhau và không phải cả hai đều rỗng.

Đó chỉ là một ví dụ. Tôi thừa nhận rằng hành vi của NULL= nhà điều hành đã gây ra rất nhiều nhầm lẫn trong nhiều năm, nhưng cuối cùng lỗi có lẽ nằm ở rất nhiều hướng dẫn MySQL trực tuyến không đề cập đến cách NULL tương tác với các toán tử, cũng như sự tồn tại của <=> nhà điều hành.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PathExpression không hợp lệ. Phải là StateFieldPathExpression

  2. Đối chiếu thay đổi MySQL của tất cả các bảng

  3. Nối nhiều cột từ một bảng thành một cột từ một bảng khác

  4. Chặn '0000-00-00' khỏi Trường Ngày MySQL

  5. Tối ưu hóa truy vấn sử dụng chỉ mục MySQL