Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak porównać dwie kolumny w MySQL

Czasami może być konieczne porównanie dwóch kolumn z tej samej tabeli lub innej tabeli w MySQL. MySQL umożliwia łatwe porównywanie dwóch kolumn za pomocą operatorów oraz zapytań zagnieżdżonych. W tym artykule przyjrzymy się, jak porównać dwie kolumny w MySQL.


Jak porównać dwie kolumny w MySQL

Przyjrzymy się różnym przypadkom użycia, aby porównać dwie kolumny w MySQL


Porównaj dwie kolumny z tej samej tabeli

Załóżmy, że masz następującą tabelę sprzedaż(id, koszt_cena, cena_sprzedaży) i chcesz porównać cost_price i selling_price kolumny.

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 |
+------+------------+---------------+

Oto ogólne zapytanie SQL do dwóch porównujących kolumny (kolumna1, kolumna2) w tabeli (tabela1).

mysql> select * from table1
       where column1 not in 
       (select column2 from table1);

W powyższym zapytaniu zaktualizuj tabelę 1, kolumnę 1 i kolumnę 2 zgodnie z wymaganiami.

Przeczytaj bonus:Jak uzyskać każdy N-ty wiersz w MySQL

Zastosujemy to zapytanie do porównania dwóch kolumn cost_price i selling_price i wyświetlaj rekordy w przypadku niezgodności między dwiema kolumnami.

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 |
+------+------------+---------------+

Możesz także użyć operatorów matematycznych (<,>, <>), jeśli chcesz porównać dwie kolumny liczbowe. Oto przykład wyświetlania wierszy, w których koszt_cena>cena_sprzedaży.

mysql> select * from sales where cost_price>selling_price;
+------+------------+---------------+
| id   | cost_price | selling_price |
+------+------------+---------------+
|    2 |        215 |           145 |
|    3 |        310 |           100 |
+------+------------+---------------+

Przeczytaj bonus:Jak dodać kolumnę automatycznego przyrostu w MySQL


Porównaj dwie kolumny z innej tabeli

Załóżmy, że masz też inną tabelę zamówienia(id, cena_kosztu, cena_sprzedaży)

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 |
+------+------------+---------------+

Przeczytaj bonus:5 najlepszych darmowych narzędzi do projektowania baz danych

Oto powyższe zapytanie SQL zmodyfikowane w celu porównania dwóch kolumn z różnych tabel table1 i table2

mysql> select * from table1
       where column1 not in 
      (select column2 from table2);

Zastosujemy powyższe zapytanie, aby porównać cost_price kolumna z sprzedaży tabela z ceną_sprzedaży z zamówieniami tabela.

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 ułatwia wizualizację danych i monitorowanie ich w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj Ubiq za darmo.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać ostatni dzień miesiąca w MySQL?

  2. UTF-8 przez całą drogę

  3. Formatuj liczbę jako procent w MySQL

  4. Czy istnieją wady używania ogólnego varchar(255) dla wszystkich pól tekstowych?

  5. Polecenie SQL do wyświetlenia i wyświetlenia wszystkich baz danych w MySQL i MariaDB