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.