Terkadang Anda mungkin perlu memasukkan data sebagai boolean di MySQL. Berikut cara mentransmisikan sebagai boolean di MySQL. Kita akan melihat cara menggunakan string sebagai boolean dan menggunakan int sebagai boolean.
Cara Cast sebagai Boolean di MySQL
Berikut adalah langkah-langkah untuk melakukan cast sebagai boolean di MySQL. MySQL memungkinkan Anda untuk mentransmisikan data menggunakan fungsi CAST dan CONVERT. Namun, tak satu pun dari mereka mendukung konversi ke tipe data boolean, di luar kotak. Sebagai gantinya, Anda perlu melakukan casting sebagai UNSIGNED INT. Mari kita lihat contoh untuk melemparkan string sebagai boolean
Bonus Baca :MySQL CAST vs CONVERT
Cara Melempar String sebagai Boolean
Katakanlah Anda memiliki kolom string berikut produk yang berisi nilai string
mysql> select product from product_orders; +---------+ | product | +---------+ | A | | B | | C | | A | | B | | C | | A | | B | | C | +---------+
Katakanlah Anda ingin mengonversi string menjadi boolean di mana product =True jika A else False, maka inilah kueri SQL untuk memasukkan string sebagai boolean.
mysql> select cast(product='A' as unsigned) from product_orders; +-------------------------------+ | cast(product='A' as unsigned) | +-------------------------------+ | 1 | | 0 | | 0 | | 1 | | 0 | | 0 | | 1 | | 0 | | 0 | +-------------------------------+
Dalam kueri di atas, harap perhatikan,
1. Kami CAST ke tipe data UNSIGNED karena baik fungsi CAST maupun CONVERT tidak mendukung konversi langsung ke tipe data boolean
2. MySQL menyimpan data boolean sebagai tinyint(1) yaitu, 1 atau 0, dan bukan nilai True/False. Karena tinyint dapat dengan mudah disimpan sebagai unsigned int, kami mengonversi string menjadi unsigned int.
3. Kami menggunakan ekspresi kondisional (produk='A') di dalam cast yang outputnya boolean. Anda tidak dapat langsung mengubah kolom string menjadi boolean menggunakan CAST atau CONVERT. Inilah hasil yang akan Anda dapatkan jika Anda mencobanya.
mysql> select cast(product as unsigned) from product_orders; +---------------------------+ | cast(product as unsigned) | +---------------------------+ | 0 | | 0 | | 0 | | 0 | | 0 | | 0 | | 0 | | 0 | | 0 | +---------------------------+
Anda dapat mengubah ekspresi kondisional sesuai kebutuhan. Misalnya, inilah kueri SQL jika Anda ingin mengonversi product =A atau product =B sebagai true, dan sisanya sebagai false.
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 | +----------------------------------------------+
atau Anda juga dapat menggunakan kueri berikut untuk mendapatkan hasil yang sama.
mysql> select cast(product in ('A','B') as unsigned) from product_orders;
Cara Mentransmisikan Int sebagai Boolean
Katakanlah Anda memiliki kolom int berikut jumlah di meja Anda.
mysql> select amount from product_orders; +--------+ | amount | +--------+ | 250 | | 150 | | 200 | | 250 | | 210 | | 125 | | 350 | | 225 | | 150 | +--------+
Katakanlah Anda ingin mengonversi int menjadi boolean dengan jumlah<200 Benar, jika tidak Salah. Berikut kueri SQL untuk mentransmisikan int sebagai boolean.
mysql> select cast(amount<200 as unsigned) from product_orders; +------------------------------+ | cast(amount<200 as unsigned) | +------------------------------+ | 0 | | 1 | | 0 | | 0 | | 0 | | 1 | | 0 | | 0 | | 1 | +------------------------------+
Anda juga dapat menggunakan MySQL Convert sebagai pengganti MySQL CAST untuk setiap kueri di atas. Berikut adalah contoh query di atas, menggunakan MySQL CONVERT.
mysql> select convert(amount<200, unsigned) from product_orders;
Semoga sekarang Anda dapat dengan mudah melakukan cast sebagai boolean di MySQL.
Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!