MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи EXPORT_SET() в MariaDB

В MariaDB, EXPORT_SET() е вградена функция за низ, която връща низ, който отразява битовете в посочената стойност. За всеки бит, зададен в посочената стойност, получавате низ „включен“ и за всеки бит, който не е зададен в стойността, получавате низ „изключен“.

Той приема минимум три аргумента, плюс два незадължителни аргумента.

Синтаксис

Синтаксисът е така:

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

Следващата таблица предоставя обяснение на тези аргументи.

bits Стойността, за която искате да се върнат резултатите. Предоставя се като цяло число, но се преобразува в битове. За всеки бит, който е зададен в тази стойност, получавате включено низ и за всеки бит, който не е зададен в стойността, получавате изключено низ. Битовете се изследват от дясно на ляво (от битове от нисък към висок ред).
on Низът, който е върнат за всяко on битове.
off Низът, който се връща за всяко изключено битове.
separator Незадължителен аргумент, който можете да използвате, за да посочите разделителя, който да използвате. Стойността по подразбиране е знакът запетая. Следователно, ако не посочите този аргумент, като разделител се използва запетая.
number_of_bits Броят на битовете за проверка. Стойността по подразбиране е 64. Ако предоставите по-голяма стойност, тя се изрязва безшумно до 64, ако е по-голяма от 64.

Пример

Ето един основен пример:

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

Резултат:

+---------------------------------+
| EXPORT_SET(13,'On','Off',',',4) |
+---------------------------------+
| On,Off,On,On                    |
+---------------------------------+

Виждаме, че първият, третият и четвъртият бит са зададени, но вторият не е.

Можем да използваме BIN() функция, за да върне подобен резултат, но в обратен ред:

SELECT BIN(13);

Резултат:

+---------+
| BIN(13) |
+---------+
| 1101    |
+---------+

BIN() функцията връща низово представяне на двоичната стойност на дадения longlong. В този пример той върна три 1 с.

В нашия EXPORT_SET() например, посочихме, че on и off трябва да се използва за представяне на 1 и 0 съответно. Можем обаче да променим това (по-долу).

Също така с EXPORT_SET() , низовете се добавят към резултата отляво надясно. Следователно резултатът от EXPORT_SET() изглежда като огледално изображение на резултата от BIN() .

Променете стойностите за включване/изключване

Ето го отново, но този път използваме различен низ за on и off състояния.

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

Резултат:

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

Този път използваме 1 и 0 , подобно на това, което BIN() функцията се връща, но с добавен разделител (и обърнат).

Променете разделителя

Четвъртият (незадължителен) аргумент указва какъв разделител да се използва. Ето го с различен разделител:

SELECT EXPORT_SET(7,'True','False','-',4);

Резултат:

+------------------------------------+
| EXPORT_SET(7,'True','False','-',4) |
+------------------------------------+
| True-True-True-False               |
+------------------------------------+

Променете броя на битовете за проверка

Петият (по избор) аргумент указва колко бита да се изследват. В предишните примери използвахме 4 като брой битове за изследване. Можем да увеличим това, ако искаме:

SELECT EXPORT_SET(7,'1','0',',',10);

Резултат:

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

В този случай всички допълнителни битове не са зададени. Нека увеличим стойността на първия аргумент, за да видим как това се отразява на резултата:

SELECT EXPORT_SET(172,'1','0',',',10);

Резултат:

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

Стойности по подразбиране

Както бе споменато, четвъртият и петият аргумент са незадължителни. Когато ги пропуснете, се използват стойностите по подразбиране.

Брой битове по подразбиране

Ако премахнем последния аргумент, 64 бита се проверяват:

SELECT EXPORT_SET(172,'1','0','');

Резултат:

+------------------------------------------------------------------+
| EXPORT_SET(172,'1','0','')                                       |
+------------------------------------------------------------------+
| 0011010100000000000000000000000000000000000000000000000000000000 |
+------------------------------------------------------------------+

В този случай премахнах и разделителя, за да направя изхода по-сбит.

Разделител по подразбиране

Можем също да премахнем аргумента разделител. Когато направим това, EXPORT_SET() използва запетаята като разделител по подразбиране.

SELECT EXPORT_SET(123456789,'1','0');

Резултат:

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

Нулеви аргументи

Ако някой от аргументите е null , резултатът е 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";

Резултат:

+------+------+------+------+------+
| 1    | 2    | 3    | 4    | 5    |
+------+------+------+------+------+
| NULL | NULL | NULL | NULL | NULL |
+------+------+------+------+------+

Липсващи аргументи

Извикване на EXPORT_SET() без подаване на аргументи (или с грешен брой аргументи) води до грешка:

SELECT EXPORT_SET();

Резултат:

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. Въведение в администрирането на MaxScale Използване на maxctrl за MariaDB Cluster

  2. MariaDB JSON_QUERY() Обяснено

  3. MariaDB JSON_VALUE() срещу JSON_QUERY():Каква е разликата?

  4. 8 начина да добавите час към дата и час в MariaDB

  5. MariaDB FLOOR() срещу TRUNCATE()