Di MariaDB, EXPORT_SET()
adalah fungsi string bawaan yang mengembalikan string yang mencerminkan bit dalam nilai yang ditentukan. Untuk setiap bit yang diatur dalam nilai yang ditentukan, Anda mendapatkan string “on” dan untuk setiap bit yang tidak disetel dalam nilai, Anda mendapatkan string “off”.
Ia menerima minimal tiga argumen, ditambah dua argumen opsional.
Sintaks
Sintaksnya seperti ini:
EXPORT_SET(bits, on, off[, separator[, number_of_bits]])
Tabel berikut memberikan penjelasan tentang argumen tersebut.
bits | Nilai yang Anda inginkan hasilnya dikembalikan. Disediakan sebagai bilangan bulat, tetapi diubah menjadi bit. Untuk setiap bit yang disetel dalam nilai ini, Anda mendapatkan on string, dan untuk setiap bit yang tidak disetel dalam nilai, Anda mendapatkan off rangkaian. Bit diperiksa dari kanan ke kiri (dari bit orde rendah ke bit orde tinggi). |
on | String yang dikembalikan untuk setiap di sedikit. |
off | String yang dikembalikan untuk off any sedikit. |
separator | Argumen opsional yang dapat Anda gunakan untuk menentukan pemisah yang akan digunakan. Nilai default adalah karakter koma. Oleh karena itu, jika Anda tidak menentukan argumen ini, koma digunakan sebagai pemisah. |
number_of_bits | Jumlah bit yang akan diperiksa. Nilai defaultnya adalah 64. Jika Anda memberikan nilai yang lebih besar, nilai ini akan dipotong secara diam-diam menjadi 64 jika lebih besar dari 64. |
Contoh
Berikut ini contoh dasarnya:
SELECT EXPORT_SET(13,'On','Off',',',4);
Hasil:
+---------------------------------+ | EXPORT_SET(13,'On','Off',',',4) | +---------------------------------+ | On,Off,On,On | +---------------------------------+
Kita dapat melihat bahwa bit pertama, ketiga, dan keempat disetel, tetapi bit kedua tidak.
Kita dapat menggunakan BIN()
berfungsi untuk mengembalikan hasil yang serupa, tetapi dalam urutan terbalik:
SELECT BIN(13);
Hasil:
+---------+ | BIN(13) | +---------+ | 1101 | +---------+
BIN()
fungsi mengembalikan representasi string dari nilai biner dari longlong yang diberikan. Dalam contoh ini, ia mengembalikan tiga 1
s.
Dalam EXPORT_SET()
our kami contoh, kami menetapkan bahwa on
dan off
harus digunakan untuk mewakili 1
dan 0
masing-masing. Kami dapat mengubahnya (di bawah).
Juga, dengan EXPORT_SET()
, string ditambahkan ke hasil dari kiri ke kanan. Oleh karena itu hasil dari EXPORT_SET()
terlihat seperti bayangan cermin dari hasil BIN()
.
Ubah Nilai Nyala/Mati
Ini dia lagi, tapi kali ini kita menggunakan string yang berbeda untuk on
dan off
negara bagian.
SELECT EXPORT_SET(7,'1','0',',',4);
Hasil:
+-----------------------------+ | EXPORT_SET(7,'1','0',',',4) | +-----------------------------+ | 1,1,1,0 | +-----------------------------+
Kali ini kita menggunakan 1
dan 0
, mirip dengan apa yang BIN()
fungsi kembali, tetapi dengan pemisah tambahan (dan dibalik).
Ubah Pemisah
Argumen keempat (opsional) menentukan pemisah apa yang akan digunakan. Ini dia dengan pemisah yang berbeda:
SELECT EXPORT_SET(7,'True','False','-',4);
Hasil:
+------------------------------------+ | EXPORT_SET(7,'True','False','-',4) | +------------------------------------+ | True-True-True-False | +------------------------------------+
Ubah Jumlah Bit yang Akan Diperiksa
Argumen kelima (opsional) menentukan berapa banyak bit yang akan diperiksa. Dalam contoh sebelumnya, kami menggunakan 4 sebagai jumlah bit untuk diperiksa. Kita dapat meningkatkan ini jika kita mau:
SELECT EXPORT_SET(7,'1','0',',',10);
Hasil:
+------------------------------+ | EXPORT_SET(7,'1','0',',',10) | +------------------------------+ | 1,1,1,0,0,0,0,0,0,0 | +------------------------------+
Dalam hal ini, semua bit tambahan tidak disetel. Mari kita tingkatkan nilai argumen pertama untuk melihat bagaimana hal ini memengaruhi hasil:
SELECT EXPORT_SET(172,'1','0',',',10);
Hasil:
+--------------------------------+ | EXPORT_SET(172,'1','0',',',10) | +--------------------------------+ | 0,0,1,1,0,1,0,1,0,0 | +--------------------------------+
Nilai Default
Seperti disebutkan, argumen keempat dan kelima adalah opsional. Saat Anda menghilangkan ini, nilai default akan digunakan.
Jumlah Bit Default
Jika kita menghapus argumen terakhir, 64 bit diperiksa:
SELECT EXPORT_SET(172,'1','0','');
Hasil:
+------------------------------------------------------------------+ | EXPORT_SET(172,'1','0','') | +------------------------------------------------------------------+ | 0011010100000000000000000000000000000000000000000000000000000000 | +------------------------------------------------------------------+
Dalam hal ini saya juga menghapus pemisah untuk membuat output lebih ringkas.
Pemisah Default
Kami juga dapat menghapus argumen pemisah. Saat kita melakukan ini, EXPORT_SET()
menggunakan koma sebagai pemisah default.
SELECT EXPORT_SET(123456789,'1','0');
Hasil:
+-----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------+ | EXPORT_SET(123456789,'1','0') | +---------------------------------------------------------------------------------------------------------------------------------+ | 1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | +---------------------------------------------------------------------------------------------------------------------------------+
Argumen Null
Jika ada argumen yang null
, hasilnya null
:
SELECT
EXPORT_SET(null,'1','0') AS "1",
EXPORT_SET(7,null,'0') AS "2",
EXPORT_SET(7,'1',null) AS "3",
EXPORT_SET(7,'1','0',null,4) AS "4",
EXPORT_SET(7,'1','0',',',null) AS "5";
Hasil:
+------+------+------+------+------+ | 1 | 2 | 3 | 4 | 5 | +------+------+------+------+------+ | NULL | NULL | NULL | NULL | NULL | +------+------+------+------+------+
Argumen Tidak Ada
Memanggil EXPORT_SET()
tanpa memberikan argumen apa pun (atau dengan jumlah argumen yang salah) menghasilkan kesalahan:
SELECT EXPORT_SET();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'EXPORT_SET'