sql >> Databáze >  >> RDS >> Mysql

Jak funguje funkce EXPORT_SET() v MySQL

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

  1. Jak počítat slova v MySQL / náhradě regulárních výrazů?

  2. Rozdíl mezi uživatelem a přihlášením na SQL Server

  3. Změnit typ pole varchar na celé číslo:nelze automaticky přetypovat na typ celé číslo

  4. Funkce MySQL LOG() – Vrátí přirozený logaritmus hodnoty