Понякога може да се наложи да сравните две колони от една и съща таблица или различна таблица в 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 безплатно.