Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Cast als Boolean

Manchmal müssen Sie möglicherweise Daten in MySQL in boolesche Werte umwandeln. Hier erfahren Sie, wie Sie in MySQL als boolean umwandeln. Wir werden uns ansehen, wie man string als boolean und int als boolean umwandelt.

Wie man in MySQL als booleschen Wert umwandelt

Hier sind die Schritte zum Umwandeln als boolescher Wert in MySQL. MySQL ermöglicht es Ihnen, Daten mit den Funktionen CAST und CONVERT umzuwandeln. Keine von ihnen unterstützt jedoch die Konvertierung in den booleschen Datentyp von Haus aus. Sie müssen stattdessen als UNSIGNED INT umwandeln. Sehen wir uns ein Beispiel an, um eine Zeichenfolge als booleschen Wert umzuwandeln

Bonuslektüre:MySQL CAST vs. CONVERT

Wie man einen String als booleschen Wert umwandelt

Angenommen, Sie haben die folgende Zeichenfolgenspalte Produkt die Zeichenkettenwerte enthält

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

Angenommen, Sie möchten einen String in einen booleschen Wert konvertieren, wobei product =True ist, wenn es A else False ist, dann ist hier die SQL-Abfrage, um den String in einen booleschen Wert umzuwandeln.

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

Bitte beachten Sie in der obigen Abfrage,

1. Wir CAST in den UNSIGNED-Datentyp, da weder die CAST- noch die CONVERT-Funktion die direkte Konvertierung in den booleschen Datentyp unterstützen

2. MySQL speichert boolesche Daten als tinyint(1), also 1 oder 0, und nicht als True/False-Werte. Da tinyint einfach als unsigned int gespeichert werden kann, wandeln wir string in unsigned int um.

3. Wir verwenden einen bedingten Ausdruck (product=’A’) innerhalb von cast, dessen Ausgabe ein boolescher Wert ist. Sie können eine Zeichenfolgenspalte nicht direkt mit CAST oder CONVERT in einen booleschen Wert konvertieren. Hier ist die Ausgabe, die Sie erhalten, wenn Sie dies versuchen.

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

Sie können den bedingten Ausdruck nach Bedarf ändern. Hier ist zum Beispiel die SQL-Abfrage, wenn Sie Produkt =A  oder Produkt =B als wahr und Rest als falsch umwandeln möchten.

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

oder Sie können auch die folgende Abfrage verwenden, um dasselbe Ergebnis zu erhalten.

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

Wie man Int als booleschen Wert umwandelt

Nehmen wir an, Sie haben die folgende int-Spalte Betrag in Ihrer Tabelle.

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

Angenommen, Sie möchten int in einen booleschen Wert umwandeln, wobei der Wert <200 Wahr ist, andernfalls False. Hier ist die SQL-Abfrage, um int als booleschen Wert umzuwandeln.

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

Sie können auch MySQL Convert anstelle von MySQL CAST für jede der oben genannten Abfragen verwenden. Hier ist ein Beispiel für die obige Abfrage mit MySQL CONVERT.

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

Hoffentlich können Sie jetzt einfach in MySQL als boolean umwandeln.

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!