Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Fungsi EXPORT_SET() Bekerja di MySQL

The MySQL EXPORT_SET() fungsi mengembalikan string yang mewakili bit dalam angka.

Anda memiliki kemampuan untuk menyesuaikan bagaimana fungsi mengeluarkan string. Fungsi menerima sejumlah argumen yang memungkinkan Anda melakukan ini. Saat Anda memanggil fungsi tersebut, Anda memberikan nomor yang dimaksud, serta argumen yang menentukan bagaimana hasilnya ditampilkan.

Sintaks

Sintaksnya seperti ini:

EXPORT_SET(bits,on,off[,separator[,number_of_bits]])

Berikut penjelasan argumennya:

bit
Ini adalah nomor yang Anda ingin hasilnya dikembalikan. 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).
pada
Inilah yang dikembalikan untuk setiap di bit.
mati
Inilah yang dikembalikan untuk setiap diskon bit.
pemisah
Ini adalah 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.
jumlah_bit_bit
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 1 – Penggunaan Dasar

Berikut adalah contoh untuk mendemonstrasikan penggunaan dasar fungsi ini.

SELECT EXPORT_SET(9,'On','Off',',',4);

Hasil:

+--------------------------------+| EXPORT_SET(9,'On','Off',',',4) |+------------------------------ --+| Nyala,Nonaktif,Nonaktif,Aktif |+--------------------------------+

Untuk memahami hasil ini, kita perlu memahami bagaimana angka 9 direpresentasikan dalam bit. Untuk melakukan ini, kita dapat menggunakan BIN() berfungsi untuk menampilkan representasi biner dari angka 9.

PILIH BIN(9);

Hasil:

+--------+| BIN(9) |+--------+| 1001 |+--------+

Jadi kita dapat melihat bahwa representasi biner dari 9 adalah 1001 . Setiap 1 adalah di bit (sudah disetel) dan masing-masing 0 adalah tidak aktif bit (tidak disetel).

Contoh 2 – Ubah Argumen ke-2 dan ke-3

Kita dapat mengambil contoh sebelumnya dan mengubah argumen kedua dan ketiga.

SELECT EXPORT_SET(9,'Y','N',',',4);

Hasil:

+-----------------------------+| EXPORT_SET(9,'Y','N',',',4) |+-----------------------------+ | Y,N,N,Y |+-----------------------------+

Jadi sekarang untuk setiap di sedikit, kita mendapatkan Y , dan setiap nonaktif bit mengembalikan N .

Kami bahkan dapat mengubahnya sehingga satu dan nol dikembalikan:

SELECT EXPORT_SET(9,1,0,',',4);

Hasil:

+-------------------------+| EXPORT_SET(9,1,0,',',4) |+-------------------------+| 1,0,0,1 |+-------------------------+

Contoh 3 – Ubah Argumen ke-4 (pemisah)

Dalam contoh sebelumnya kami secara eksplisit menentukan koma sebagai pemisah. Ini juga merupakan nilai default.

Kami dapat mengubah pemisah menjadi sesuatu yang lain jika diperlukan.

SELECT EXPORT_SET(9,1,0,'-',4);

Hasil:

+-------------------------+| EXPORT_SET(9,1,0,'-',4) |+-------------------------+| 1-0-0-1 |+------------------------+

Dan inilah yang terjadi jika kita menetapkan string kosong sebagai pemisah:

SELECT EXPORT_SET(9,1,0,'',4);

Hasil:

+------------------------+| EXPORT_SET(9,1,0,'',4) |+------------------------+| 1001 |+------------------------+

Contoh 4 – Ubah Argumen ke-5

Argumen kelima menentukan berapa banyak bit untuk diperiksa. Pada contoh sebelumnya kita menggunakan 4 sebagai nilainya, jadi hanya empat bit yang diperiksa (dan dikembalikan). Kita dapat menambah atau mengurangi ini sesuai kebutuhan, dengan menetapkan nilai yang berbeda sebagai argumen keempat.

SELECT EXPORT_SET(9,1,0,'-',10);

Hasil:

+--------------------------+| EXPORT_SET(9,1,0,'-',10) |+--------------------------+| 1-0-0-1-0-0-0-0-0-0 |+--------------------------+ 

Dalam contoh ini kami meningkatkan jumlah bit yang diperiksa menjadi 10.

Ingat, bit diperiksa dari kanan ke kiri, jadi nol ekstra dalam contoh ini sebenarnya untuk nol orde tinggi. Jadi urutannya terbalik dengan representasi biner yang sebenarnya.

Berikut ini contoh untuk menunjukkan apa yang saya maksud:

PILIH BIN(567), EXPORT_SET(567.1,0,'',10);

Hasil:

+-------------+----------------------------+| BIN(567) | EXPORT_SET(567,1,0,'',10) |+------------+---------------------- -----+| 1000110111 | 1110110001 |+------------+-----------------+

Dalam hal ini, mereka terlihat seperti bayangan cermin. Pada dasarnya, hasil dari EXPORT_SET() dalam urutan terbalik ke BIN() .

Nilai default untuk argumen kelima adalah 64, jadi jika kita menghilangkan argumen ini, berapa banyak bit yang akan diperiksa.

SELECT EXPORT_SET(9,1,0,'-');

Hasil:

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

Ini diam-diam terpotong ke 64 jadi jika Anda memberikan nilai di luar rentang ini, itu akan dipotong ke 64.

SELECT EXPORT_SET(9,1,0,'-',500);

Hasil:

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

Ini adalah bilangan bulat yang tidak ditandatangani, jadi hasilnya sama jika Anda menggunakan nilai negatif:

SELECT EXPORT_SET(9,1,0,'-',-4);

Hasil:

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

Contoh 5 – Menggunakan Nilai Default

Kita dapat menghilangkan dua argumen terakhir untuk menggunakan nilai default:

SELECT EXPORT_SET(9,'On','Off');

Hasil:

+------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------+| Nyala,Nonaktif,Nonaktif,Aktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif, Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif, Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif,Nonaktif |+--------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengubah Direktori Data MySQL/MariaDB Default di Linux

  2. Beban Kerja Database OLTP/Analytics Hibrida:Mereplikasi Data MySQL ke ClickHouse

  3. Bagaimana Operator SUARA SEPERTI Bekerja di MySQL

  4. YEARWEEK() Contoh – MySQL

  5. Mencegah injeksi SQL di Node.js