Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak działa funkcja EXPORT_SET() w MySQL

MySQL EXPORT_SET() funkcja zwraca łańcuch, który reprezentuje bity w liczbie.

Masz możliwość dostosowania sposobu, w jaki funkcja wyprowadza ciąg. Funkcja akceptuje szereg argumentów, które pozwalają to zrobić. Kiedy wywołujesz funkcję, podajesz odpowiednią liczbę, a także argumenty określające sposób wyświetlania wyników.

Składnia

Składnia wygląda tak:

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

Oto wyjaśnienie argumentów:

bity
To jest numer, dla którego chcesz zwrócić wyniki. Za każdy bit ustawiony w tej wartości otrzymujesz on string, a za każdy bit, który nie jest ustawiony w wartości, otrzymujesz off strunowy. Bity są sprawdzane od prawej do lewej (od bitów niskiego rzędu do bitów wysokiego rzędu).
na
To jest zwracane za każdy w bity.
wył
To jest zwracane za każdą off bity.
separator
Jest to opcjonalny argument, którego można użyć do określenia separatora, który ma zostać użyty. Wartość domyślna to znak przecinka. Dlatego, jeśli nie określisz tego argumentu, przecinek zostanie użyty jako separator.
liczba_bitów
Liczba bitów do zbadania. Domyślna wartość to 64. Jeśli podasz większą wartość, zostanie ona po cichu przycięta do 64, jeśli jest większa niż 64.

Przykład 1 – Podstawowe użycie

Oto przykład demonstrujący podstawowe użycie tej funkcji.

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

Wynik:

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

Aby zrozumieć ten wynik, musimy zrozumieć, w jaki sposób liczba 9 jest reprezentowany w bitach. Aby to zrobić, możemy użyć BIN() funkcja do wyprowadzania binarnej reprezentacji liczby 9.

SELECT BIN(9);

Wynik:

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

Widzimy więc, że binarna reprezentacja 9 to 1001 . Każdy 1 jest na bit (jest ustawiony) i każdy 0 jest wyłączony bit (nie jest ustawiony).

Przykład 2 – zmiana drugiego i trzeciego argumentu

Możemy wziąć poprzedni przykład i zmienić drugi i trzeci argument.

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

Wynik:

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

Więc teraz dla każdego na trochę, otrzymujemy Y , a każdy wyłączony bit zwraca N .

Moglibyśmy nawet to zmienić, aby zwracane były jedynek i zera:

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

Wynik:

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

Przykład 3 – zmiana czwartego argumentu (separatora)

W poprzednich przykładach wyraźnie określiliśmy przecinek jako separator. Jest to również wartość domyślna.

W razie potrzeby możemy zmienić separator na inny.

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

Wynik:

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

A oto, co się stanie, jeśli jako separatora określimy pusty ciąg:

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

Wynik:

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

Przykład 4 – zmiana piątego argumentu

Piąty argument określa liczbę bitów do zbadania. W poprzednim przykładzie użyliśmy 4 jako wartość, więc zbadano (i zwrócono) tylko cztery bity. Możemy to zwiększyć lub zmniejszyć zgodnie z wymaganiami, podając inną wartość jako czwarty argument.

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

Wynik:

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

W tym przykładzie zwiększyliśmy liczbę zbadanych bitów do 10.

Pamiętaj, że bity są sprawdzane od prawej do lewej, więc dodatkowe zera w tym przykładzie są w rzeczywistości zerami wyższego rzędu. Jest więc w odwrotnej kolejności do rzeczywistej reprezentacji binarnej.

Oto przykład pokazujący, co mam na myśli:

SELECT 
  BIN(567),
  EXPORT_SET(567,1,0,'',10);

Wynik:

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

W tym przypadku wyglądają jak lustrzane odbicia. Zasadniczo wynik EXPORT_SET() jest w odwrotnej kolejności do BIN() .

Domyślna wartość piątego argumentu to 64, więc jeśli pominiemy ten argument, tyle bitów zostanie zbadanych.

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

Wynik:

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

Jest to po cichu obcinane do 64, więc jeśli podasz wartość spoza tego zakresu, zostanie ona obcięta do 64.

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

Wynik:

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

Jest to liczba całkowita bez znaku, więc ten sam wynik, jeśli użyjesz wartości ujemnej:

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

Wynik:

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

Przykład 5 – Używanie wartości domyślnych

Możemy pominąć dwa ostatnie argumenty, aby użyć wartości domyślnych:

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

Wynik:

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| On,Off,Off,On,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,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. WYBIERZ * GDZIE NIE ISTNIEJE

  2. Wykonywanie obliczeń w MySQL vs PHP

  3. Jak zabezpieczyć MySQL:część pierwsza

  4. Jak dodać dni do daty w MySQL

  5. Zainstaluj i używaj Percona Toolkit na Centos 7