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

Cách CHỌN Bản ghi Không có Giá trị NULL trong MySQL

Mặc dù hầu hết các ứng dụng sẽ có một số dạng công nghệ phía máy chủ hoặc thậm chí phía máy khách có thể được sử dụng để lọc ra các kết quả truy vấn cơ sở dữ liệu có thể chứa NULL hoặc các giá trị trống, sử dụng ngôn ngữ khác và gánh nặng bổ sung của việc thực thi mã thường tốn kém hơn cho máy chủ và trên thực tế, phần lớn là không cần thiết.

Thay vào đó, bên dưới chúng ta sẽ khám phá ngắn gọn cách sử dụng MySQL engine để thực hiện tác vụ này, chỉ lấy các bản ghi mà bạn mong muốn trong khi loại trừ những bản ghi có pesky NULL các cột trong hỗn hợp.

KHÔNG PHẢI là Toán tử So sánh ĐẦY ĐỦ

Cho đến nay, phương pháp đơn giản và dễ hiểu nhất để đảm bảo tập kết quả của một cột cụ thể không chứa NULL giá trị là sử dụng IS NOT NULL toán tử so sánh.

Ví dụ:nếu chúng tôi muốn chọn tất cả các bản ghi trong books của chúng tôi bảng trong đó primary_author cột không NULL , truy vấn có thể trông giống như sau:

SELECT
  primary_author,
  published_date,
  title
FROM
  books
WHERE
  primary_author IS NOT NULL;

IS NOT NULL hoạt động giống như bất kỳ bộ so sánh nào khác, nó có thể được kết hợp với WHERE khác các mệnh đề để lọc thêm kết quả, giống như thể bạn đang sử dụng = , > , < , LIKE và các toán tử so sánh tiêu chuẩn khác.

Lọc NULL từ Nhiều Cột

Trong một số trường hợp, bạn có thể muốn truy xuất kết quả trong đó không NULL các giá trị hiện diện trên nhiều cột. Ví dụ:chúng tôi có một số bản ghi trong books bảng:

id | title                | primary_author  | published_date
1  | The Hobbit           | Tolkien         | 09-21-1937
2  | The Silmarillion     | Tolkien         | 09-15-1977
3  | The Name of the Wind | Rothfuss        | 03-27-2007
4  | The Wise Man's Fear  | Rothfuss        | 03-01-2011
5  | The Doors of Stone   | Rothfuss        | NULL
6  | Beowulf              | NULL            | 01-01-1000

Hãy lưu ý rằng Những cánh cửa bằng đá (id 5 ) chưa được xuất bản và do đó là published_dateNULL . Tương tự, Beowulf (id 6 ) - bài thơ sử thi tiếng Anh cổ nổi tiếng - không có tác giả nào được biết đến, vì vậy primary_authorNULL .

Trong trường hợp này, chúng tôi có thể muốn truy vấn các kết quả chỉ chứa bốn đầu tiên bản ghi, do đó loại trừ hai bản ghi cuối cùng có NULL các giá trị trong primary_author hoặc published_date . Điều này có thể được thực hiện với câu lệnh đơn giản này bằng cách sử dụng AND với nhiều toán tử so sánh:

SELECT
  primary_author,
  published_date,
  title
FROM
  books
WHERE
  (
    primary_author IS NOT NULL
  AND
    published_date IS NOT NULL
  );

Lưu ý:Không bắt buộc phải có dấu ngoặc đơn nhưng bạn nên đặt các bộ so sánh được nhóm lại với nhau để dễ đọc hơn.

Đây là bạn có nó; một toán tử so sánh đơn giản có thể được sử dụng để lọc ra bất kỳ và tất cả NULL giá trị trong hồ sơ của bạ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. Làm cách nào để tự động tạo di chuyển bằng Sequelize CLI từ các mô hình Sequelize?

  2. Tạo ứng dụng web từ Scratch bằng Python Flask và MySQL:Phần 2

  3. Đếm hàng với PDO

  4. Trích dẫn đơn, Trích dẫn kép và Dấu ngoặc kép trong Truy vấn MySQL

  5. Khắc phục “ERROR 1250 (42000):Không thể sử dụng bảng‘… ’từ một trong các SELECT trong mệnh đề ORDER toàn cục” khi sử dụng UNION trong MySQL