Manchmal müssen Sie möglicherweise eine Spalte mit einem Nullwert vergleichen oder zwei Spalten vergleichen, von denen eine einen Nullwert hat, oder sogar eine Nullprüfung für Spalten durchführen. In diesem Artikel werden wir uns ansehen, wie man Nullwerte in MySQL vergleicht. Sie können es für den Null-Vergleich in MySQL verwenden.
So vergleichen Sie Nullwerte in MySQL
Nehmen wir an, Sie haben die folgende Tabelle sales(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 | +------+------------+------------+---------------+
Angenommen, Sie möchten Zeilen auswählen, in denen der Einstandspreis null ist. Normalerweise würden Sie einen Ausdruck wie cost_price=null verwenden aber es funktioniert nicht mit NULL-Werten. Im Falle eines Nullvergleichs müssen Sie IS verwenden Operator, d. h. cost_price IS null
Daher wird die folgende SQL-Abfrage nicht funktionieren
mysql> select * from sales where cost_price=null; Empty set (0.00 sec)
Die folgende SQL-Abfrage funktioniert . Hier ist die SQL-Abfrage, um Zeilen auszuwählen, in denen cost_price null ist.
mysql> select * from sales where cost_price is null; +------+------------+------------+---------------+ | id | order_date | cost_price | selling_price | +------+------------+------------+---------------+ | 4 | 2020-11-03 | NULL | 100 | +------+------------+------------+---------------+
Lesen Sie auch:Wie man zwei Spalten in MySQL vergleicht
In ähnlicher Weise ist hier die SQL-Abfrage zum Auswählen von Zeilen, in denen cost_price nicht NULL ist. In diesem Fall verwenden wir IST NICHT Betreiber.
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 | +------+------------+------------+---------------+
Sie können IS NULL und IS NOT NULL mit UPDATE-, INSERT- und DELETE-Anweisungen verwenden.
Mit UPDATE-Anweisung
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 | +------+------------+------------+---------------+
Lesen Sie auch:So erhalten Sie jede n-te Zeile in MySQL
Mit INSERT-Anweisung
Hier ist ein Beispiel, das den MySQL-NULL-Vergleich in der INSERT-Anweisung verwendet.
mysql> insert into new_sales(id,order_date, cost_price, selling_price) select * from sales where cost_price is null;
Mit DELETE-Anweisung
Hier ist ein Beispiel für die Verwendung des Null-Vergleichs in der Löschanweisung.
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 | +------+------------+------------+---------------+
Hoffentlich hilft Ihnen dieser Artikel dabei, NULL-Werte in MySQL zu vergleichen. Ubiq macht es einfach, Daten zu visualisieren und sie in Echtzeit-Dashboards zu überwachen. Testen Sie Ubiq kostenlos.