Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment comparer deux colonnes dans MySQL

Parfois, vous devrez peut-être comparer deux colonnes de la même table ou d'une table différente, dans MySQL. MySQL vous permet de comparer facilement deux colonnes à l'aide d'opérateurs ainsi que de requêtes imbriquées. Dans cet article, nous verrons comment comparer deux colonnes dans MySQL.


Comment comparer deux colonnes dans MySQL

Nous examinerons différents cas d'utilisation pour comparer deux colonnes dans MySQL


Comparer deux colonnes du même tableau

Disons que vous avez le tableau suivant sales(id, cost_price, selling_price) et vous voulez comparer cost_price et vente_prix colonnes.

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

Voici la requête SQL générique pour comparer deux colonnes (colonne1, colonne2) dans une table (table1).

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

Dans la requête ci-dessus, mettez à jour table1, column1 et column2 selon vos besoins.

Lecture bonus :Comment obtenir chaque Nième ligne dans MySQL

Nous allons appliquer cette requête pour comparer deux colonnes cost_price et vente_prix , et afficher les enregistrements où il y a une incompatibilité entre deux colonnes.

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

Vous pouvez également utiliser des opérateurs mathématiques (<,>, <>) au cas où vous voudriez comparer deux colonnes numériques. Voici un exemple pour afficher les lignes où cost_price>selling_price.

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

Lecture bonus :comment ajouter une colonne d'incrémentation automatique dans MySQL


Comparer deux colonnes d'un tableau différent

Disons que vous avez également une autre table 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 |
+------+------------+---------------+

Lecture bonus :Top 5 des outils de conception de base de données gratuits

Voici la requête SQL ci-dessus modifiée pour comparer deux colonnes de différentes tables table1 et table2

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

Nous appliquerons la requête ci-dessus pour comparer cost_price colonne de ventes table avec selling_price avec commandes tableau.

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 facilite la visualisation des données et leur suivi dans des tableaux de bord en temps réel. Essayez Ubiq gratuitement.