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

Bagaimana MAKE_SET() Bekerja di MariaDB

Di MariaDB, MAKE_SET() adalah fungsi string yang mengembalikan nilai yang ditetapkan, berdasarkan nilai yang diberikan dalam argumennya.

Himpunan adalah string yang berisi substring yang dipisahkan dengan koma (, ) karakter.

Sintaks

Sintaksnya seperti ini:

MAKE_SET(bits,str1,str2,...)

Dimana str1, str2,... adalah satu atau lebih nilai string dan bits menentukan nilai string mana yang akan disertakan dalam set.

MAKE_SET() mengembalikan nilai yang ditetapkan yang terdiri dari string yang memiliki bit yang sesuai dalam bits mengatur.

Contoh

Berikut ini contoh untuk didemonstrasikan:

SELECT MAKE_SET( 1, 'a', 'b', 'c', 'd' );

Hasil:

+-----------------------------------+
| MAKE_SET( 1, 'a', 'b', 'c', 'd' ) |
+-----------------------------------+
| a                                 |
+-----------------------------------+

Perhatikan bahwa ia menggunakan representasi biner dari argumen pertama untuk mengembalikan string yang berlaku dalam argumen berikutnya. Oleh karena itu, tidak sesederhana mengatakan, argumen pertama adalah 1 dan sesuai dengan item 1.

Berikut contoh lain yang menggambarkan apa yang saya maksud:

SELECT MAKE_SET( 4, 'a', 'b', 'c', 'd' );

Hasil:

+-----------------------------------+
| MAKE_SET( 4, 'a', 'b', 'c', 'd' ) |
+-----------------------------------+
| c                                 |
+-----------------------------------+

Cara Kerjanya

Pertimbangkan hal berikut:

SELECT 
    BIN(1) AS '1', 
    BIN(2) AS '2', 
    BIN(3) AS '3', 
    BIN(4) AS '4', 
    BIN(5) AS '5', 
    BIN(6) AS '6', 
    BIN(7) AS '7', 
    BIN(8) AS '8', 
    BIN(9) AS '9', 
    BIN(10) AS '10';

Hasil (menggunakan keluaran vertikal):

 1: 1
 2: 10
 3: 11
 4: 100
 5: 101
 6: 110
 7: 111
 8: 1000
 9: 1001
10: 1010

Di sini, saya menggunakan BIN() berfungsi untuk mengembalikan nilai biner setiap angka.

Kita dapat melihat bahwa representasi biner dari 4 adalah 100 . Kita perlu memvisualisasikan ini mundur untuk menerapkannya ke MAKE_SET() contoh di atas. Dalam kasus kami, ini adalah nilai biner tiga digit, dengan digit paling kanan sesuai dengan string pertama, digit berikutnya sesuai dengan string kedua, dan digit paling kiri sesuai dengan string ketiga.

Dalam istilah biner, 1 adalah “aktif” dan 0 adalah "mati". MAKE_SET() fungsi hanya mengembalikan string yang memiliki 1 . yang sesuai dalam nilai binernya. Oleh karena itu, contoh kita di atas mengembalikan string ketiga.

Berikut contoh lain menggunakan nilai yang berbeda:

SELECT MAKE_SET(10, 'a','b','c','d');

Hasil:

+-------------------------------+
| MAKE_SET(10, 'a','b','c','d') |
+-------------------------------+
| b,d                           |
+-------------------------------+

Dalam hal ini, nilai binernya adalah 1010 . Oleh karena itu ia memiliki dua 1 s, yang sesuai dengan argumen string kedua dan keempat.

Berikut adalah beberapa contoh lagi untuk mendemonstrasikan konsep tersebut lebih lanjut:

SELECT 
    MAKE_SET(1, 'a','b','c','d') AS '1', 
    MAKE_SET(2, 'a','b','c','d') AS '2', 
    MAKE_SET(3, 'a','b','c','d') AS '3', 
    MAKE_SET(4, 'a','b','c','d') AS '4', 
    MAKE_SET(5, 'a','b','c','d') AS '5', 
    MAKE_SET(6, 'a','b','c','d') AS '6', 
    MAKE_SET(7, 'a','b','c','d') AS '7', 
    MAKE_SET(8, 'a','b','c','d') AS '8', 
    MAKE_SET(9, 'a','b','c','d') AS '9', 
    MAKE_SET(10, 'a','b','c','d') AS '10';

Hasil (menggunakan keluaran vertikal):

 1: a
 2: b
 3: a,b
 4: c
 5: a,c
 6: b,c
 7: a,b,c
 8: d
 9: a,d
10: b,d

Berikut ini contoh penggunaan rangkaian string yang berbeda:

SELECT MAKE_SET(3, 'Cat','Bat','Rat');

Hasil (menggunakan keluaran vertikal):

+--------------------------------+
| MAKE_SET(3, 'Cat','Bat','Rat') |
+--------------------------------+
| Cat,Bat                        |
+--------------------------------+

Beberapa Nilai Biner

Gunakan simbol pipa (| ) untuk menyertakan lebih dari satu nilai dalam kumpulan:

SELECT MAKE_SET( 1 | 4, 'Cat', 'Bat', 'Rat' );

Hasil:

+----------------------------------------+
| MAKE_SET( 1 | 4, 'Cat', 'Bat', 'Rat' ) |
+----------------------------------------+
| Cat,Rat                                |
+----------------------------------------+

Nilai Null

Jika nilai string null , maka dihilangkan dari hasil:

SELECT MAKE_SET( 1 | 3, 'Cat', null, 'Rat' );

Hasil:

+---------------------------------------+
| MAKE_SET( 1 | 3, 'Cat', null, 'Rat' ) |
+---------------------------------------+
| Cat                                   |
+---------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana RLIKE Bekerja di MariaDB

  2. Cara Menginstal MariaDB 10 di Debian dan Ubuntu

  3. Pengguna Baru dan Manajemen LDAP di ClusterControl 1.8.2

  4. 4 Fungsi untuk Mengembalikan Bulan dari Tanggal di MariaDB

  5. MariaDB DEFAULT() Dijelaskan