sql >> Databáze >  >> RDS >> Mysql

Jak porovnat dva sloupce v MySQL

Někdy můžete potřebovat porovnat dva sloupce ze stejné tabulky nebo jiné tabulky v MySQL. MySQL umožňuje snadno porovnávat dva sloupce pomocí operátorů a také vnořených dotazů. V tomto článku se podíváme na to, jak porovnat dva sloupce v MySQL.


Jak porovnat dva sloupce v MySQL

Podíváme se na různé případy použití k porovnání dvou sloupců v MySQL


Porovnejte dva sloupce ze stejné tabulky

Řekněme, že máte následující tabulku prodej(id, cena_cena, prodejní_cena) a chcete porovnat cost_price a prodejní_cena sloupce.

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

Zde je obecný dotaz SQL na porovnání dvou sloupců (sloupec1, sloupec2) v tabulce (tabulka1).

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

Ve výše uvedeném dotazu aktualizujte tabulku1, sloupec1 a sloupec2 podle svých požadavků.

Bonusové čtení:Jak získat každý N-tý řádek v MySQL

Tento dotaz použijeme k porovnání dvou sloupců cost_price a prodejní_cena a zobrazí záznamy, kde je neshoda mezi dvěma sloupci.

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

V případě, že chcete porovnat dva číselné sloupce, můžete také použít matematické operátory (<,>, <>). Zde je příklad zobrazení řádků, kde cena_cena>prodejní_cena.

mysql> select * from sales where cost_price>selling_price;
+------+------------+---------------+
| id   | cost_price | selling_price |
+------+------------+---------------+
|    2 |        215 |           145 |
|    3 |        310 |           100 |
+------+------------+---------------+

Bonusové čtení:Jak přidat sloupec automatického přírůstku do MySQL


Porovnejte dva sloupce z jiné tabulky

Řekněme, že máte také další tabulku orders(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 |
+------+------------+---------------+

Bonusové čtení:Top 5 bezplatných nástrojů pro návrh databáze

Zde je výše uvedený dotaz SQL upravený pro porovnání dvou sloupců z různých tabulek table1 a table2

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

Výše uvedený dotaz použijeme k porovnání cost_price sloupec z prodeje tabulka s prodejní_cenou s objednávkami tabulka.

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 usnadňuje vizualizaci dat a jejich sledování na řídicích panelech v reálném čase. Vyzkoušejte Ubiq zdarma.

  1. dbms_output.put_line

  2. Zdroj dat MySQL se ve Visual Studiu nezobrazuje

  3. Jak ukládat opakující se data s ohledem na letní čas

  4. Zdroje clusteru Galera