sql >> Databasteknik >  >> RDS >> Mysql

Hur man jämför två kolumner i MySQL

Ibland kan du behöva jämföra två kolumner från samma tabell eller annan tabell, i MySQL. MySQL låter dig enkelt jämföra två kolumner med hjälp av operatorer såväl som kapslade frågor. I den här artikeln kommer vi att titta på hur man jämför två kolumner i MySQL.


Hur man jämför två kolumner i MySQL

Vi kommer att titta på olika användningsfall för att jämföra två kolumner i MySQL


Jämför två kolumner från samma tabell

Låt oss säga att du har följande tabell försäljning(id, kostnadspris, försäljningspris) och du vill jämföra kostnadspris och försäljningspris kolumner.

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 |
+------+------------+---------------+

Här är den allmänna SQL-frågan för två jämförelsekolumner (kolumn1, kolumn2) i en tabell (tabell1).

mysql> select * from table1
       where column1 not in 
       (select column2 from table1);

Uppdatera tabell1, kolumn1 och kolumn2 i ovanstående fråga enligt dina krav.

Bonusläs:Hur man får varje N:te rad i MySQL

Vi kommer att använda den här frågan för att jämföra två kolumner kostnadspris och försäljningspris , och visa poster där det finns en oöverensstämmelse mellan två kolumner.

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 också använda matematiska operatorer (<,>, <>) om du vill jämföra två numeriska kolumner. Här är ett exempel för att visa rader där 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äsning:Hur man lägger till kolumn för automatisk ökning i MySQL


Jämför två kolumner från olika tabeller

Låt oss säga att du också har ett annat bord order(id, kostnadspris, försäljningspris)

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äsning:Topp 5 gratis verktyg för databasdesign

Här är SQL-frågan ovan modifierad för att jämföra två kolumner från olika tabeller tabell1 och tabell2

mysql> select * from table1
       where column1 not in 
      (select column2 from table2);

Vi använder ovanstående fråga för att jämföra kostnadspris kolumn från försäljning tabell med säljningspris med beställningar bord.

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 enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.

  1. Hantera MySQL datum och tidsstämplar i Java

  2. ML{.NET} Introduktion

  3. Beräkna din SQL Server Monitoring Total Cost of Ownership

  4. Index autoinkrement för Microsoft SQL Server 2008 R2