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

MySQL SELECT only not null value

Bạn nên sử dụng IS NOT NULL . (Các toán tử so sánh =<> cả hai đều đưa ra UNKNOWN với NULL ở một trong hai bên của biểu thức.)

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

Để hoàn thiện hơn, tôi sẽ đề cập rằng trong MySQL, bạn cũng có thể phủ định toán tử bình đẳng an toàn rỗng nhưng đây không phải là SQL chuẩn.

SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);

Đã chỉnh sửa để phản ánh ý kiến. Có vẻ như bảng của bạn có thể không ở dạng bình thường đầu tiên, trong trường hợp đó, việc thay đổi cấu trúc có thể làm cho nhiệm vụ của bạn dễ dàng hơn. Tuy nhiên, một số cách khác để làm điều đó ...

SELECT val1 AS val
FROM  your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2 
FROM  your_table
WHERE val2 IS NOT NULL
/*And so on for all your columns*/

Nhược điểm của cách trên là nó quét bảng nhiều lần một lần cho mỗi cột. Điều đó có thể tránh được bằng cách bên dưới nhưng tôi chưa thử nghiệm điều này trong MySQL.

SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM   your_table
        /*CROSS JOIN*/
       JOIN (SELECT 1 AS idx
                   UNION ALL
                   SELECT 2) t
HAVING val IS NOT NULL  /*Can reference alias in Having in MySQL*/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Chờ trong vài giây bằng cách sử dụng SELECT SLEEP ()

  2. ĐẶT TÊN utf8 trong MySQL?

  3. MySQL # 1140 - Kết hợp các cột NHÓM

  4. Cách thay đổi cổng MySQL / MariaDB mặc định trong Linux

  5. Sử dụng Like trong MySQL cho các hoạt động tìm kiếm bằng cách sử dụng mẫu