Ibland kan du behöva jämföra en kolumn med nollvärde eller jämföra två kolumner där en av dem har nollvärden, eller till och med utföra nollkontroll för kolumner. I den här artikeln kommer vi att titta på hur man jämför nollvärden i MySQL. Du kan använda den för Null-jämförelse i MySQL.
Hur man jämför nollvärden i MySQL
Låt oss säga att du har följande tabell försäljning(id, order_date, cost_price, selling_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 |
+------+------------+------------+---------------+
Låt oss säga att du vill välja rader där självkostnadspriset är noll. Vanligtvis skulle du använda ett uttryck som cost_price=null men det fungerar inte med NULL-värden. Vid nolljämförelse måste du använda IS operator, det vill säga kostnadspris ÄR null
Så följande SQL-fråga kommer inte att fungera
mysql> select * from sales where cost_price=null; Empty set (0.00 sec)
Följande SQL-fråga kommer att fungera . Här är SQL-frågan för att välja rader där kostnadspris är 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 också:Hur man jämför två kolumner i MySQL
På samma sätt är här SQL-frågan för att välja rader där kostnadspris inte är NULL. I det här fallet använder 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 använda IS NULL och IS NOT NULL med UPDATE, INSERT och DELETE-satsen.
Med UPPDATERING
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 också:Hur man får varje N:te rad i MySQL
Med INSERT-utlåtande
Här är ett exempel som använder MySQL NULL Comparison i INSERT-satsen.
mysql> insert into new_sales(id,order_date, cost_price, selling_price)
select * from sales
where cost_price is null;
Med DELETE-deklaration
Här är ett exempel på hur du använder Null-jämförelse i Ta bort uttalande.
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 |
+------+------------+------------+---------------+
Förhoppningsvis hjälper den här artikeln dig att jämföra NULL-värden i MySQL. Ubiq gör det enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.