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.