sql >> Database teknologi >  >> RDS >> Mysql

Sådan sammenlignes to kolonner i MySQL

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.

  1. Vil du inkludere overskrifter, når du bruger SELECT INTO OUTFILE?

  2. Opret en SQL Server-database med Azure Data Studio

  3. Hvad er den bedste måde at vælge minimumsværdien fra flere kolonner?

  4. Brug af GO i en transaktion