Nogle gange kan det være nødvendigt at sammenligne en kolonne med null-værdi eller sammenligne to kolonner, hvor en af dem har nul-værdier, eller endda udføre nul-check for kolonner. I denne artikel vil vi se på, hvordan man sammenligner null-værdier i MySQL. Du kan bruge det til nul-sammenligning i MySQL.
Sådan sammenlignes null-værdier i MySQL
Lad os sige, at du har følgende tabel salg(id, ordredato, kostpris, salgspris)
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 |
+------+------------+------------+---------------+
Lad os sige, at du vil vælge rækker, hvor kostprisen er nul. Typisk vil du bruge et udtryk såsom cost_price=null men det virker ikke med NULL-værdier. I tilfælde af nul-sammenligning skal du bruge IS operatør, dvs. kostpris ER null
Så den følgende SQL-forespørgsel virker ikke
mysql> select * from sales where cost_price=null; Empty set (0.00 sec)
Følgende SQL-forespørgsel virker . Her er SQL-forespørgslen til at vælge rækker, hvor cost_price er null.
mysql> select * from sales where cost_price is null; +------+------------+------------+---------------+ | id | order_date | cost_price | selling_price | +------+------------+------------+---------------+ | 4 | 2020-11-03 | NULL | 100 | +------+------------+------------+---------------+
Læs også:Sådan sammenligner du to kolonner i MySQL
På samme måde er her SQL-forespørgslen til at vælge rækker, hvor cost_price ikke er NULL. I dette tilfælde bruger vi IS NOT operatør.
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 | +------+------------+------------+---------------+
Du kan bruge IS NULL og IS NOT NULL med UPDATE, INSERT og DELETE-sætning.
Med OPDATERINGSerklæring
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 |
+------+------------+------------+---------------+ Læs også:Sådan får du hver Nth Row i MySQL
Med INSERT-erklæring
Her er et eksempel, der bruger MySQL NULL Comparison i INSERT-sætning.
mysql> insert into new_sales(id,order_date, cost_price, selling_price)
select * from sales
where cost_price is null;
Med SLET-erklæring
Her er et eksempel på brug af nul-sammenligning i Slet erklæring.
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 |
+------+------------+------------+---------------+
Forhåbentlig hjælper denne artikel dig med at sammenligne NULL-værdier i MySQL. Ubiq gør det nemt at visualisere data og overvåge dem i dashboards i realtid. Prøv Ubiq gratis.