MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana EXPORT_SET() Bekerja di MariaDB

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan Ketersediaan Tinggi Basis Data - Replikasi MySQL / MariaDB vs Oracle Data Guard

  2. Bagaimana DEGREES() Bekerja di MariaDB

  3. Bagaimana SYS_GUID() Bekerja di MariaDB

  4. 2 Cara Mendaftar semua Fungsi di MariaDB

  5. Bagaimana LENGTH() Bekerja di MariaDB