Понякога може да се наложи да сравните две колони от една и съща таблица или различна таблица в MySQL. MySQL ви позволява лесно да сравнявате две колони, като използвате оператори, както и вложени заявки. В тази статия ще разгледаме как да сравним две колони в MySQL.
Как да сравним две колони в MySQL
Ще разгледаме различни случаи на използване, за да сравним две колони в MySQL
Сравнете две колони от една и съща таблица
Да приемем, че имате следната таблица sales(id, cost_price, selling_price) и искате да сравните cost_price и продажна_цена колони.
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 | +------+------------+---------------+
Ето общата SQL заявка към две колони за сравнение (колона1, колона2) в таблица (таблица1).
mysql> select * from table1 where column1 not in (select column2 from table1);
В горната заявка актуализирайте таблица 1, колона 1 и колона 2 според вашето изискване.
Бонус четене:Как да получите всеки N-ти ред в MySQL
Ще приложим тази заявка, за да сравним две колони cost_price и продажна_цена и показва записи, където има несъответствие между две колони.
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 | +------+------------+---------------+
Можете също да използвате математически оператори (<,>, <>), в случай че искате да сравните две числови колони. Ето пример за показване на редове, където cost_price>selling_price.
mysql> select * from sales where cost_price>selling_price; +------+------------+---------------+ | id | cost_price | selling_price | +------+------------+---------------+ | 2 | 215 | 145 | | 3 | 310 | 100 | +------+------------+---------------+
Бонус за четене:Как да добавя колона за автоматично увеличение в MySQL
Сравнете две колони от различна таблица
Да кажем, че имате и друга таблица поръчки(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 | +------+------------+---------------+
Бонус за четене:Топ 5 безплатни инструмента за проектиране на бази данни
Ето горната SQL заявка, модифицирана за сравняване на две колони от различни таблици table1 и table2
mysql> select * from table1 where column1 not in (select column2 from table2);
Ще приложим горната заявка, за да сравним cost_price колона от продажби таблица с продажна_цена с поръчки таблица.
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 улеснява визуализирането на данни и наблюдението им в табла за управление в реално време. Опитайте Ubiq безплатно.