sql >> Databasteknik >  >> RDS >> Mysql

Hur funktionen EXPORT_SET() fungerar i MySQL

 MySQL EXPORT_SET() funktion returnerar en sträng som representerar bitarna i ett tal.

Du har möjlighet att anpassa hur funktionen matar ut strängen. Funktionen accepterar ett antal argument som låter dig göra detta. När du anropar funktionen anger du numret i fråga, samt argument som avgör hur resultaten visas.

Syntax

Syntaxen ser ut så här:

EXPORT_SET(bitar,på,av[,separator[,antal_bitar]])

Här är en förklaring av argumenten:

bitar
Detta är numret som du vill att resultaten ska returneras för. För varje bit som ställs in i detta värde får du en sträng, och för varje bit som inte är inställd i värdet får du en av sträng. Bitarna undersöks från höger till vänster (från lågordning till högordningsbitar).
Detta är vad som returneras för någon bitar.
av
Detta är vad som returneras för eventuell off bitar.
separator
Detta är ett valfritt argument som du kan använda för att ange vilken separator som ska användas. Standardvärdet är kommatecken. Därför, om du inte anger detta argument används ett kommatecken som avgränsare.
antal_bitar
Antalet bitar som ska undersökas. Standardvärdet är 64. Om du anger ett högre värde, klipps detta tyst till 64 om det är större än 64.

Exempel 1 – Grundläggande användning

Här är ett exempel för att visa den grundläggande användningen av denna funktion.

SELECT EXPORT_SET(9,'På','Av',',',4);

Resultat:

+--------------------------------+| EXPORT_SET(9,'På','Av',',',4) |+------------------------------------ --+| På,Av,Av,På |+--------------------------------+

För att förstå detta resultat måste vi förstå hur siffran 9 representeras i bitar. För att göra detta kan vi använda BIN() funktion för att mata ut den binära representationen av talet 9.

VÄLJ BIN(9);

Resultat:

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

Så vi kan se att den binära representationen av 9 är 1001 . Varje 1 är en bit (den är inställd) och varje 0 är av bit (den är inte inställd).

Exempel 2 – Ändra det andra och det tredje argumentet

Vi kan ta det föregående exemplet och ändra det andra och tredje argumentet.

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

Resultat:

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

Så nu för varje lite, vi får Y , och varje av bit returnerar N .

Vi kan till och med ändra det så att ettor och nollor returneras:

VÄLJ EXPORT_SET(9,1,0,',',4);

Resultat:

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

Exempel 3 – Ändra det fjärde argumentet (avgränsaren)

I de föregående exemplen anger vi uttryckligen ett kommatecken som avgränsare. Detta är också standardvärdet.

Vi kan ändra separatorn till något annat om det behövs.

VÄLJ EXPORT_SET(9,1,0,'-',4);

Resultat:

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

Och här är vad som händer om vi anger den tomma strängen som separator:

VÄLJ EXPORT_SET(9,1,0,'',4);

Resultat:

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

Exempel 4 – Ändra det 5:e argumentet

Det femte argumentet anger hur många bitar som ska undersökas. I föregående exempel använde vi 4 som värdet, så endast fyra bitar undersöktes (och returnerades). Vi kan öka eller minska detta efter behov, genom att ange ett annat värde som det fjärde argumentet.

VÄLJ EXPORT_SET(9,1,0,'-',10);

Resultat:

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

I det här exemplet ökade vi antalet undersökta bitar till 10.

Kom ihåg att bitarna undersöks från höger till vänster, så de extra nollorna i det här exemplet är faktiskt för nollorna av hög ordning. Så det är i omvänd ordning till den faktiska binära representationen.

Här är ett exempel för att visa vad jag menar:

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

Resultat:

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

I det här fallet ser de ut som spegelbilder. I grund och botten är resultatet av EXPORT_SET() är i omvänd ordning till BIN() .

Standardvärdet för det femte argumentet är 64, så om vi utelämnar detta argument är det hur många bitar som kommer att undersökas.

VÄLJ EXPORT_SET(9,1,0,'-');

Resultat:

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

Detta klipps tyst till 64 så om du anger ett värde utanför detta intervall klipps det till 64.

VÄLJ EXPORT_SET(9,1,0,'-',500);

Resultat:

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

Det är ett heltal utan tecken, så samma resultat om du använder ett negativt värde:

VÄLJ EXPORT_SET(9,1,0,'-',-4);

Resultat:

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

Exempel 5 – Använda standardvärden

Vi kan utelämna de två sista argumenten för att använda standardvärdena:

VÄLJ EXPORT_SET(9,'På','Av');

Resultat:

+------------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------+| På,Av,Av,På,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av, Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av,Av |+--------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+

  1. Hur man hittar ett listobjekt på en specificerad position i SQL Server

  2. Hur man stoppar/startar databasens e-postkö i SQL Server (T-SQL)

  3. Så här grupperar du efter månad från datumfältet med sql

  4. Två SQL LEFT JOINS ger felaktigt resultat