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.