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

Как работи функцията EXPORT_SET() в MySQL

 MySQL EXPORT_SET() функцията връща низ, който представлява битовете в число.

Имате възможността да персонализирате как функцията извежда низа. Функцията приема редица аргументи, които ви позволяват да направите това. Когато извикате функцията, вие предоставяте въпросния номер, както и аргументи, които определят как се показват резултатите.

Синтаксис

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

EXPORT_SET(битове,включено,изключено[,разделител[,брой_битове]])

Ето обяснение на аргументите:

битове
Това е номерът, за който искате да се върнат резултатите. За всеки бит, който е зададен в тази стойност, получавате включено низ и за всеки бит, който не е зададен в стойността, получавате изключено низ. Битовете се изследват от дясно на ляво (от битове от нисък към висок ред).
включено
Това е, което се връща за всяко включване битове.
изключено
Това се връща за всяко изключване битове.
разделител
Това е незадължителен аргумент, който можете да използвате, за да посочите разделителя, който да използвате. Стойността по подразбиране е знакът запетая. Следователно, ако не посочите този аргумент, като разделител се използва запетая.
брой_битове
Броят на битовете за проверка. Стойността по подразбиране е 64. Ако предоставите по-голяма стойност, тя се изрязва безшумно до 64, ако е по-голяма от 64.

Пример 1 – Основна употреба

Ето пример за демонстриране на основното използване на тази функция.

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

Резултат:

+--------------------------------+| EXPORT_SET(9,'Вкл.','Изкл.',',',4) |+------------------------------ --+| Включено,Изключено,Изключено,Включено |+--------------------------------+

За да разберем този резултат, трябва да разберем как е числото 9 е представена в битове. За да направим това, можем да използваме BIN() функция за извеждане на двоичното представяне на числото 9.

ИЗБЕРЕТЕ BIN(9);

Резултат:

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

Така можем да видим, че двоичното представяне на 9 е 1001 . Всеки 1 е включено бит (той е зададен) и всеки 0 е изключено бит (не е зададен).

Пример 2 – Промяна на 2-ри и 3-ти аргумент

Можем да вземем предишния пример и да променим втория и третия аргумент.

ИЗБЕРЕТЕ EXPORT_SET(9,'Y','N',',',4);

Резултат:

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

Така че сега за всяко включено малко, получаваме Y , и всеки изключен битът връща N .

Бихме могли дори да го променим, така че да се връщат единици и нули:

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,',',4);

Резултат:

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

Пример 3 – Промяна на 4-тия аргумент (разделителя)

В предишните примери изрично посочихме запетая като разделител. Това също е стойността по подразбиране.

Можем да сменим разделителя с нещо друго, ако е необходимо.

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'-',4);

Резултат:

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

И ето какво се случва, ако посочим празния низ като разделител:

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'',4);

Резултат:

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

Пример 4 – Промяна на 5-ия аргумент

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

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'-',10);

Резултат:

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

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

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

Ето пример, за да демонстрирам какво имам предвид:

ИЗБЕРЕТЕ BIN(567), EXPORT_SET(567,1,0,'',10);

Резултат:

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

В този случай те изглеждат като огледални изображения. По принцип резултатът от EXPORT_SET() е в обратен ред на BIN() .

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

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'-');

Резултат:

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

Това се подрязва безшумно до 64, така че ако предоставите стойност извън този диапазон, тя ще бъде подрязана до 64.

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'-',500);

Резултат:

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

Това е цяло число без знак, така че резултатът е същият, ако използвате отрицателна стойност:

ИЗБЕРЕТЕ EXPORT_SET(9,1,0,'-',-4);

Резултат:

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

Пример 5 – Използване на стойности по подразбиране

Можем да пропуснем последните два аргумента, за да използваме стойностите по подразбиране:

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

Резултат:

+------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------+| Вкл., Изкл., Изкл., Вкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изкл., Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен, Изключен |+--------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Подреждане по харесване?

  2. Как да сравним две колони в MySQL

  3. Сравнение между MySQL Clone Plugin и Xtrabackup

  4. Предотвратяване на автоматично увеличение на InnoDB НА ДУПЛИКАТ КЛЮЧ

  5. Как да сравним две таблици в MySQL