Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да сравним две колони в MySQL

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите мета данни от базата данни

  2. mysql, итерирайте през имената на колони

  3. Най-добрите начини за поправяне на повредена таблица InnoDB в MySQL

  4. Как да получите времето от низ в MySQL

  5. Инсталиране на Percona XtraDB Cluster на CentOS 7