Nogle gange skal du måske sammenligne to kolonner fra samme tabel eller anden tabel i MySQL. MySQL giver dig mulighed for nemt at sammenligne to kolonner ved hjælp af operatorer såvel som indlejrede forespørgsler. I denne artikel vil vi se på, hvordan man sammenligner to kolonner i MySQL.
Sådan sammenlignes to kolonner i MySQL
Vi vil se på forskellige use cases for at sammenligne to kolonner i MySQL
Sammenlign to kolonner fra samme tabel
Lad os sige, at du har følgende tabel salg(id, kostpris, salgspris) og du vil sammenligne cost_price og salgspris kolonner.
mysql> create table sales(id int, cost_price int, selling_price int);
mysql> insert into sales(id, cost_price, selling_price)
values(1, 135, 215),
(2,215, 145),
(3,310,100);
mysql> select * from sales;
+------+------------+---------------+
| id | cost_price | selling_price |
+------+------------+---------------+
| 1 | 135 | 215 |
| 2 | 215 | 145 |
| 3 | 310 | 100 |
+------+------------+---------------+
Her er den generiske SQL-forespørgsel til to sammenligningskolonner (kolonne1, kolonne2) i en tabel (tabel1).
mysql> select * from table1
where column1 not in
(select column2 from table1); I ovenstående forespørgsel skal du opdatere tabel1, kolonne1 og kolonne2 i henhold til dit krav.
Bonus Læs:Sådan får du hver Nth Row i MySQL
Vi anvender denne forespørgsel til at sammenligne to kolonner pris_pris og salgspris , og vise poster, hvor der er uoverensstemmelse mellem to kolonner.
mysql> select * from sales
where cost_price not in
(select selling_price from sales);
+------+------------+---------------+
| id | cost_price | selling_price |
+------+------------+---------------+
| 1 | 135 | 215 |
| 3 | 310 | 100 |
+------+------------+---------------+
Du kan også bruge matematiske operatorer (<,>, <>), hvis du vil sammenligne to numeriske kolonner. Her er et eksempel for at vise rækker, hvor cost_price>selling_price.
mysql> select * from sales where cost_price>selling_price; +------+------------+---------------+ | id | cost_price | selling_price | +------+------------+---------------+ | 2 | 215 | 145 | | 3 | 310 | 100 | +------+------------+---------------+
Bonuslæser:Sådan tilføjes automatisk stigningskolonne i MySQL
Sammenlign to kolonner fra forskellige tabeller
Lad os sige, at du også har en anden tabel ordrer(id, cost_price, selling_price)
mysql> create table orders(id int, cost_price int, selling_price int);
mysql> insert into orders(id, cost_price, selling_price)
values(1, 235, 215),
(2,205, 105),
(3,320,120);
mysql> select * from orders;
+------+------------+---------------+
| id | cost_price | selling_price |
+------+------------+---------------+
| 1 | 235 | 215 |
| 2 | 205 | 105 |
| 3 | 320 | 120 |
+------+------------+---------------+ Bonuslæser:Top 5 gratis værktøjer til databasedesign
Her er ovenstående SQL-forespørgsel ændret til at sammenligne to kolonner fra forskellige tabeller tabel1 og tabel2
mysql> select * from table1
where column1 not in
(select column2 from table2); Vi anvender ovenstående forespørgsel for at sammenligne cost_price kolonne fra salg tabel med salgspris med ordrer tabel.
mysql> select * from sales
where cost_price not in
(select selling_price from orders);
+------+------------+---------------+
| id | cost_price | selling_price |
+------+------------+---------------+
| 1 | 135 | 215 |
| 3 | 310 | 100 |
+------+------------+---------------+
Ubiq gør det nemt at visualisere data og overvåge dem i dashboards i realtid. Prøv Ubiq gratis.