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

MySQL Cast en booléen

Parfois, vous devrez peut-être convertir des données en booléen dans MySQL. Voici comment convertir en booléen dans MySQL. Nous verrons comment convertir une chaîne en booléen et convertir un int en booléen.

Comment diffuser en booléen dans MySQL

Voici les étapes pour convertir en booléen dans MySQL. MySQL vous permet de convertir des données à l'aide des fonctions CAST et CONVERT. Cependant, aucun d'entre eux ne prend en charge la conversion en type de données booléen, prêt à l'emploi. Vous devez plutôt lancer UNSIGNED INT. Regardons un exemple pour convertir une chaîne en booléen

Lecture bonus :MySQL CAST vs CONVERT

Comment convertir une chaîne en booléen

Supposons que vous ayez la colonne de chaîne suivante product qui contient des valeurs de chaîne

mysql> select product from product_orders;
+---------+
| product |
+---------+
| A       |
| B       |
| C       |
| A       |
| B       |
| C       |
| A       |
| B       |
| C       |
+---------+

Supposons que vous souhaitiez convertir une chaîne en booléen où product =True si c'est A sinon False, alors voici la requête SQL pour convertir la chaîne en booléen.

mysql> select cast(product='A' as unsigned) from product_orders;
+-------------------------------+
| cast(product='A' as unsigned) |
+-------------------------------+
|                             1 |
|                             0 |
|                             0 |
|                             1 |
|                             0 |
|                             0 |
|                             1 |
|                             0 |
|                             0 |
+-------------------------------+

Dans la requête ci-dessus, veuillez noter,

1. Nous CAST dans le type de données UNSIGNED car ni les fonctions CAST ni CONVERT ne prennent en charge la conversion directe en type de données booléen

2. MySQL enregistre les données booléennes en tant que tinyint(1), c'est-à-dire 1 ou 0, et non les valeurs True/False. Étant donné que tinyint peut être facilement enregistré en tant qu'entier non signé, nous convertissons la chaîne en entier non signé.

3. Nous utilisons une expression conditionnelle (product=’A’) inside cast dont la sortie est booléenne. Vous ne pouvez pas convertir directement une colonne de chaîne en booléen à l'aide de CAST ou de CONVERT. Voici la sortie que vous obtiendrez si vous essayez de le faire.

mysql> select cast(product as unsigned) from product_orders;
+---------------------------+
| cast(product as unsigned) |
+---------------------------+
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
|                         0 |
+---------------------------+

Vous pouvez modifier l'expression conditionnelle selon vos besoins. Par exemple, voici la requête SQL si vous souhaitez convertir le produit =A ou le produit =B en vrai et le reste en faux.

mysql> select cast(product='A' or product='B' as unsigned) from product_orders;
+----------------------------------------------+
| cast(product='A' or product='B' as unsigned) |
+----------------------------------------------+
|                                            1 |
|                                            1 |
|                                            0 |
|                                            1 |
|                                            1 |
|                                            0 |
|                                            1 |
|                                            1 |
|                                            0 |
+----------------------------------------------+

ou vous pouvez également utiliser la requête suivante pour obtenir le même résultat.

mysql> select cast(product in ('A','B') as unsigned) from product_orders;

Comment convertir Int en booléen

Disons que vous avez la colonne int suivante amount dans votre tableau.

mysql> select amount from product_orders;
+--------+
| amount |
+--------+
|    250 |
|    150 |
|    200 |
|    250 |
|    210 |
|    125 |
|    350 |
|    225 |
|    150 |
+--------+

Supposons que vous souhaitiez convertir un entier en booléen, où montant<200  est Vrai, sinon Faux. Voici la requête SQL à convertir en booléen.

mysql> select cast(amount<200 as unsigned) from product_orders;
+------------------------------+
| cast(amount<200 as unsigned) |
+------------------------------+
|                            0 |
|                            1 |
|                            0 |
|                            0 |
|                            0 |
|                            1 |
|                            0 |
|                            0 |
|                            1 |
+------------------------------+

Vous pouvez également utiliser MySQL Convert à la place de MySQL CAST pour chacune des requêtes ci-dessus. Voici un exemple de requête ci-dessus, utilisant MySQL CONVERT.

mysql> select convert(amount<200, unsigned) from product_orders;

J'espère que maintenant vous pouvez facilement convertir en booléen dans MySQL.

Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !