Soms moet u een kolom met een null-waarde vergelijken of twee kolommen vergelijken waarvan een ervan null-waarden heeft, of zelfs een null-controle voor kolommen uitvoeren. In dit artikel zullen we bekijken hoe u null-waarden in MySQL kunt vergelijken. Je kunt het gebruiken voor Null-vergelijking in MySQL.
Null-waarden vergelijken in MySQL
Stel dat u de volgende tabel sales(id, order_date, cost_price, selling_price) heeft
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 |
+------+------------+------------+---------------+
Stel dat u rijen wilt selecteren waar de kostprijs nul is. Normaal gesproken gebruikt u een uitdrukking zoals cost_price=null maar het werkt niet met NULL-waarden. In het geval van een nulvergelijking, moet u IS . gebruiken operator, dat wil zeggen, cost_price IS null
Dus de volgende SQL-query werkt niet
mysql> select * from sales where cost_price=null; Empty set (0.00 sec)
De volgende SQL-query zal werken . Hier is de SQL-query om rijen te selecteren waar cost_price null is.
mysql> select * from sales where cost_price is null; +------+------------+------------+---------------+ | id | order_date | cost_price | selling_price | +------+------------+------------+---------------+ | 4 | 2020-11-03 | NULL | 100 | +------+------------+------------+---------------+
Lees ook:Twee kolommen vergelijken in MySQL
Evenzo is hier de SQL-query om rijen te selecteren waarin kostprijs niet NULL is. In dit geval gebruiken we IS NIET telefoniste.
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 | +------+------------+------------+---------------+
U kunt IS NULL en IS NOT NULL gebruiken met de instructies UPDATE, INSERT en DELETE.
Met UPDATE-verklaring
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 |
+------+------------+------------+---------------+ Lees ook:Hoe u elke N-de rij in MySQL kunt krijgen
Met INSERT-instructie
Hier is een voorbeeld dat gebruikmaakt van MySQL NULL-vergelijking in de instructie INSERT.
mysql> insert into new_sales(id,order_date, cost_price, selling_price)
select * from sales
where cost_price is null;
Met DELETE-instructie
Hier is een voorbeeld om Null-vergelijking te gebruiken in Delete Statement.
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 |
+------+------------+------------+---------------+
Hopelijk helpt dit artikel je om NULL-waarden in MySQL te vergelijken. Ubiq maakt het eenvoudig om data te visualiseren en te monitoren in realtime dashboards. Probeer Ubiq gratis.