MySQL EXPORT_SET()
funkce vrací řetězec, který představuje bity v čísle.
Máte možnost přizpůsobit, jak funkce vypisuje řetězec. Funkce přijímá řadu argumentů, které vám to umožňují. Když funkci zavoláte, poskytnete příslušné číslo a také argumenty, které určují, jak se zobrazí výsledky.
Syntaxe
Syntaxe vypadá takto:
EXPORT_SET(bitů,zapnuto,vypnuto[,oddělovač[,počet_bitů]])
Zde je vysvětlení argumentů:
- bitů
- Toto je číslo, pro které chcete vrátit výsledky. Za každý bit, který je nastaven v této hodnotě, dostanete on řetězec a za každý bit, který není nastaven v hodnotě, získáte off tětiva. Bity jsou zkoumány zprava doleva (od bitů nižšího řádu k bitům vyššího řádu).
- zapnuto
- To je to, co se vrátí za zapnuto bitů.
- vypnuto
- Toto je to, co se vrací za případné sleva bitů.
- oddělovač
- Toto je volitelný argument, který můžete použít k určení oddělovače, který se má použít. Výchozí hodnotou je znak čárky. Pokud tedy tento argument neuvedete, použije se jako oddělovač čárka.
- počet_bitů
- Počet bitů k prozkoumání. Výchozí hodnota je 64. Pokud zadáte větší hodnotu, bude tato hodnota tiše oříznuta na 64, pokud je větší než 64.
Příklad 1 – Základní použití
Zde je příklad demonstrující základní použití této funkce.
SELECT EXPORT_SET(9,'Zapnuto','Vypnuto',',',4);
Výsledek:
+--------------------------------+| EXPORT_SET(9,'Zapnuto','Vypnuto',',',4) |+------------------------------ --+| Zapnuto, Vypnuto, Vypnuto, Zapnuto |+---------------------------------+
Abychom tomuto výsledku porozuměli, musíme pochopit, jak je číslo 9
je reprezentován v bitech. K tomu můžeme použít BIN()
funkce pro výstup binární reprezentace čísla 9.
SELECT BIN(9);
Výsledek:
+---------+| BIN(9) |+--------+| 1001 |+--------+
Můžeme tedy vidět, že binární reprezentace 9 je 1001
. Každý 1
je zapnuto bit (je nastaven) a každá 0
je vypnuto bit (není nastaveno).
Příklad 2 – Změňte 2. a 3. argument
Můžeme vzít předchozí příklad a změnit druhý a třetí argument.
SELECT EXPORT_SET(9,'Y','N',',',4);
Výsledek:
+-----------------------------+| EXPORT_SET(9;'Y','N',',',4) |+-----------------------------+ | A,N,N,Y |+-----------------------------+
Takže teď ke každému zapnuto bit, dostaneme Y a každé vypnuto bit vrací N .
Mohli bychom to dokonce změnit tak, že se vrátí jedničky a nuly:
SELECT EXPORT_SET(9,1;0,',',4);
Výsledek:
+-------------------------+| EXPORT_SET(9,1,0,',',4) |+-------------------------+| 1,0,0,1 |+-------------------------+
Příklad 3 – Změňte 4. argument (oddělovač)
V předchozích příkladech explicitně specifikujeme čárku jako oddělovač. Toto je také výchozí hodnota.
V případě potřeby můžeme oddělovač změnit na něco jiného.
SELECT EXPORT_SET(9,1,0,'-',4);
Výsledek:
+-------------------------+| EXPORT_SET(9,1,0,'-',4) |+-------------------------+| 1-0-0-1 |+-------------------------+
A co se stane, když jako oddělovač zadáme prázdný řetězec:
SELECT EXPORT_SET(9,1;0,'',4);
Výsledek:
+------------------------+| EXPORT_SET(9,1,0,'',4) |+------------------------+| 1001 |+------------------------+
Příklad 4 – Změňte 5. argument
Pátý argument určuje, kolik bitů se má prozkoumat. V předchozím příkladu jsme použili 4
jako hodnotu, takže byly zkoumány (a vráceny) pouze čtyři bity. Tuto hodnotu můžeme podle potřeby zvýšit nebo snížit zadáním jiné hodnoty jako čtvrtého argumentu.
SELECT EXPORT_SET(9,1,0,'-',10);
Výsledek:
+--------------------------+| EXPORT_SET(9,1,0,'-',10) |+--------------------------+| 1-0-0-1-0-0-0-0-0-0 |+--------------------------+V tomto příkladu jsme zvýšili počet zkoumaných bitů na 10.
Pamatujte, že bity jsou zkoumány zprava doleva, takže nuly navíc v tomto příkladu jsou ve skutečnosti pro nuly vyššího řádu. Je to tedy v opačném pořadí než skutečné binární zobrazení.
Zde je příklad, který demonstruje, co tím myslím:
SELECT BIN(567), EXPORT_SET(567;1;0;'',10);Výsledek:
+------------+---------------------------+| BIN(567) | EXPORT_SET(567;1,0;'',10) |+------------+---------------------- -----+| 1000110111 | 1110110001 |+------------+---------------------------+V tomto případě vypadají jako zrcadlové obrazy. V podstatě výsledek
EXPORT_SET()
je v opačném pořadí nežBIN()
.Výchozí hodnota pro pátý argument je 64, takže pokud tento argument vynecháme, bude prozkoumáno tolik bitů.
SELECT EXPORT_SET(9,1,0,'-');Výsledek:
+---------------------------------------------- -------------------------------------------------- ---------------------------------+| 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 |+---------------------- -------------------------------------------------- -------------------------------------------------- --------+Toto je tiše oříznuto na 64, takže pokud zadáte hodnotu mimo tento rozsah, bude oříznuto na 64.
SELECT EXPORT_SET(9,1,0,'-',500);Výsledek:
+---------------------------------------------- -------------------------------------------------- ---------------------------------+| 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 |+---------------------- -------------------------------------------------- -------------------------------------------------- --------+Je to celé číslo bez znaménka, takže stejný výsledek, pokud použijete zápornou hodnotu:
SELECT EXPORT_SET(9,1,0,'-',-4);Výsledek:
+---------------------------------------------- -------------------------------------------------- ---------------------------------+| 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 |+---------------------- -------------------------------------------------- -------------------------------------------------- --------+Příklad 5 – Použití výchozích hodnot
Poslední dva argumenty můžeme vynechat, abychom použili výchozí hodnoty:
SELECT EXPORT_SET(9,'Zapnuto','Vypnuto');Výsledek:
+---------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------+| Zapnuto, Vypnuto, Vypnuto, Zapnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto, Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto,Vypnuto |+---------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+