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

Cách so sánh giá trị rỗng trong MySQL

Đôi khi bạn có thể cần so sánh một cột với giá trị null hoặc so sánh hai cột trong đó một trong số chúng có giá trị null hoặc thậm chí thực hiện kiểm tra null cho các cột. Trong bài viết này, chúng ta sẽ xem xét cách so sánh các giá trị null trong MySQL. Bạn có thể sử dụng nó để so sánh Null trong MySQL.


Cách so sánh giá trị rỗng trong MySQL

Giả sử bạn có bảng sau doanh số bán hàng (id, order_date, cost_price, sell_price)

mysql> create table sales(
                id int, 
                order_date date, 
                cost_price int, 
                selling_price int);

mysql> describe sales;
+---------------+---------+------+-----+---------+-------+
| Field         | Type    | Null | Key | Default | Extra |
+---------------+---------+------+-----+---------+-------+
| id            | int(11) | YES  |     | NULL    |       |
| order_date    | date    | YES  |     | NULL    |       |
| cost_price    | int(11) | YES  |     | NULL    |       |
| selling_price | int(11) | YES  |     | NULL    |       |
+---------------+---------+------+-----+---------+-------+

mysql> insert into sales(id,order_date,cost_price,selling_price)
       values(1,'2020-11-01',150,250),
             (2,'2020-11-02',200,300);

mysql> insert into sales(id,order_date, cost_price) 
       values(3, '2020-11-03',100);

mysql> insert into sales(id,order_date, selling_price) 
       values(4, '2020-11-03',100);

mysql> select * from sales;
+------+------------+------------+---------------+
| id   | order_date | cost_price | selling_price |
+------+------------+------------+---------------+
|    1 | 2020-11-01 |        150 |           250 |
|    2 | 2020-11-02 |        200 |           300 |
|    3 | 2020-11-03 |        100 |          NULL |
|    4 | 2020-11-03 |       NULL |           100 |
+------+------------+------------+---------------+

Giả sử bạn muốn chọn các hàng có giá vốn bằng rỗng. Thông thường, bạn sẽ sử dụng một biểu thức chẳng hạn như cost_price =null nhưng nó không hoạt động với các giá trị NULL. Trong trường hợp so sánh rỗng, bạn cần sử dụng IS toán tử, tức là, giá_phí IS null

Vì vậy, truy vấn SQL sau sẽ không hoạt động

mysql> select * from sales where cost_price=null;
Empty set (0.00 sec)

Truy vấn SQL sau sẽ hoạt động . Đây là truy vấn SQL để chọn các hàng có giá_phí_mục_phí bằng null.

mysql> select * from sales where cost_price is null;
+------+------------+------------+---------------+
| id   | order_date | cost_price | selling_price |
+------+------------+------------+---------------+
|    4 | 2020-11-03 |       NULL |           100 |
+------+------------+------------+---------------+

Cũng nên đọc:Cách so sánh hai cột trong MySQL

Tương tự, đây là truy vấn SQL để chọn các hàng có giá_phí không phải là NULL. Trong trường hợp này, chúng tôi sử dụng KHÔNG PHẢI nhà điều hành.

mysql> select * from sales where cost_price is not null;
+------+------------+------------+---------------+
| id   | order_date | cost_price | selling_price |
+------+------------+------------+---------------+
|    1 | 2020-11-01 |        150 |           250 |
|    2 | 2020-11-02 |        200 |           300 |
|    3 | 2020-11-03 |        100 |          NULL |
+------+------------+------------+---------------+

Bạn có thể sử dụng IS NULL và IS NOT NULL với câu lệnh UPDATE, INSERT và DELETE.


Với Tuyên bố CẬP NHẬT

mysql> update sales
       set selling_price=350
       where cost_price is null;

mysql> select * from sales;
+------+------------+------------+---------------+
| id   | order_date | cost_price | selling_price |
+------+------------+------------+---------------+
|    1 | 2020-11-01 |        150 |           250 |
|    2 | 2020-11-02 |        200 |           300 |
|    3 | 2020-11-03 |        100 |          NULL |
|    4 | 2020-11-03 |       NULL |           350 |
+------+------------+------------+---------------+

Cũng nên đọc:Cách nhận mọi hàng thứ N trong MySQL


Với Tuyên bố CHÈN

Dưới đây là một ví dụ sử dụng MySQL NULL Comparison trong câu lệnh INSERT.

mysql> insert into new_sales(id,order_date, cost_price, selling_price)
      select * from sales
      where cost_price is null;


Với tuyên bố DELETE

Dưới đây là một ví dụ để sử dụng so sánh Null trong Xóa câu lệnh.

mysql> delete from sales
       where cost_price is null;

mysql> select * from sales;
+------+------------+------------+---------------+
| id   | order_date | cost_price | selling_price |
+------+------------+------------+---------------+
|    1 | 2020-11-01 |        150 |           250 |
|    2 | 2020-11-02 |        200 |           300 |
|    3 | 2020-11-03 |        100 |          NULL |
+------+------------+------------+---------------+

Hy vọng rằng, bài viết này sẽ giúp bạn so sánh các giá trị NULL trong MySQL. Ubiq giúp dễ dàng trực quan hóa dữ liệu và theo dõi chúng trong trang tổng quan thời gian thực. Dùng thử Ubiq miễn phí.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. phpMyAdmin - không thể kết nối - cài đặt không hợp lệ - kể từ khi tôi thêm mật khẩu gốc - đã bị khóa

  2. Cách sử dụng STRCMP () để so sánh 2 chuỗi trong MySQL

  3. Bảo mật cơ sở dữ liệu 101:Bảo mật trong cơ sở dữ liệu nguồn mở

  4. Thứ tự Mysql theo các giá trị ID cụ thể

  5. Làm cách nào để nhận các giá trị có thể có trong cơ sở dữ liệu MySQL?