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

Làm cách nào để tìm ít nhất cột không rỗng trong một hàng cụ thể trong SQL?

Rất tiếc (đối với trường hợp của bạn) hành vi của LEAST đã bị thay đổi trong MySQL 5.0.13 ( http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html# Chức năng_least ) - nó được sử dụng để trả về NULL chỉ khi tất cả các đối số là NULL.

Thay đổi này thậm chí còn được báo cáo là một lỗi: http://bugs.mysql.com/ bug.php? id =15610 Nhưng cách khắc phục chỉ dành cho tài liệu MySQL, giải thích hành vi mới và lỗi tương thích.

Giải pháp của bạn là một trong những cách giải quyết được đề xuất. Một người khác có thể sử dụng toán tử IF:

SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách ngăn cơ sở dữ liệu thêm dấu gạch chéo vào dấu ngoặc kép

  2. Ví dụ tối thiểu về việc sử dụng select ... để cập nhật để cô lập các hàng

  3. tìm kiếm mức độ liên quan trên nhiều bảng có liên quan

  4. Làm cách nào để kết nối với các cơ sở dữ liệu khác nhau tại thời điểm chạy?

  5. NetSuite Migrations