MySQL EXPORT_SET()
funktion returnerer en streng, der repræsenterer bits i et tal.
Du har mulighed for at tilpasse, hvordan funktionen udsender strengen. Funktionen accepterer en række argumenter, der tillader dig at gøre dette. Når du kalder funktionen, oplyser du det pågældende nummer, samt argumenter, der bestemmer, hvordan resultaterne vises.
Syntaks
Syntaksen ser sådan ud:
EXPORT_SET(bits,on,off[,separator[,antal_bits]])
Her er en forklaring på argumenterne:
- bits
- Dette er det nummer, som du gerne vil have resultaterne returneret for. For hver bit, der er indstillet i denne værdi, får du en on streng, og for hver bit, der ikke er angivet i værdien, får du en fra snor. Bittene undersøges fra højre mod venstre (fra lavordens til højordens bits).
- på
- Dette er, hvad der returneres for enhver på bits.
- fra
- Dette er, hvad der returneres for enhver rabat bits.
- separator
- Dette er et valgfrit argument, som du kan bruge til at angive den separator, der skal bruges. Standardværdien er kommategnet. Derfor, hvis du ikke angiver dette argument, bruges et komma som separator.
- antal_bits
- Antallet af bits, der skal undersøges. Standardværdien er 64. Hvis du angiver en større værdi, klippes denne lydløst til 64, hvis den er større end 64.
Eksempel 1 – Grundlæggende brug
Her er et eksempel for at demonstrere den grundlæggende brug af denne funktion.
SELECT EXPORT_SET(9,'Til','Fra',',',4);
Resultat:
+--------------------------------+| EXPORT_SET(9,'Til','Fra',',',4) |+------------------------------------ --+| Til, Fra, Fra, Til |+--------------------------------+
For at forstå dette resultat, er vi nødt til at forstå, hvordan tallet 9
er repræsenteret i bits. For at gøre dette kan vi bruge BIN()
funktion til at udlæse den binære repræsentation af tallet 9.
VÆLG BIN(9);
Resultat:
+--------+| BIN(9) |+--------+| 1001 |+--------+
Så vi kan se, at den binære repræsentation af 9 er 1001
. Hver 1
er en on bit (det er indstillet) og hver 0
er fra bit (den er ikke indstillet).
Eksempel 2 – Skift andet og tredje argument
Vi kan tage det foregående eksempel og ændre det andet og tredje argument.
SELECT EXPORT_SET(9,'Y','N',',',4);
Resultat:
+-------------------------------------+| EXPORT_SET(9,'Y','N',',',4) |+-----------------------------------+ | Y,N,N,Y |+-------------------------------------+
Så nu for hver på lidt, får vi Y , og hver fra bit returnerer N .
Vi kunne endda ændre det, så etere og nuller returneres:
VÆLG EXPORT_SET(9,1,0,',',4);
Resultat:
+------------------------+| EXPORT_SET(9,1,0,',',4) |+------------------------+| 1,0,0,1 |+--------------------------------+
Eksempel 3 – Skift det 4. argument (separatoren)
I de foregående eksempler har vi eksplicit angivet et komma som værende separator. Dette er også standardværdien.
Vi kan ændre separatoren til noget andet, hvis det kræves.
SELECT EXPORT_SET(9,1,0,'-',4);
Resultat:
+------------------------+| EXPORT_SET(9,1,0,'-',4) |+-------------------------+| 1-0-0-1 |+--------------------------------+
Og her er, hvad der sker, hvis vi angiver den tomme streng som separator:
SELECT EXPORT_SET(9,1,0,'',4);
Resultat:
+------------------------+| EXPORT_SET(9,1,0,'',4) |+------------------------+| 1001 |+------------------------+
Eksempel 4 – Skift det 5. argument
Det femte argument specificerer, hvor mange bits der skal undersøges. I det forrige eksempel brugte vi 4
som værdien, så kun fire bit blev undersøgt (og returneret). Vi kan øge eller mindske dette efter behov ved at angive en anden værdi som det fjerde argument.
SELECT EXPORT_SET(9,1,0,'-',10);
Resultat:
+--------------------------------+| EXPORT_SET(9,1,0,'-',10) |+--------------------------------+| 1-0-0-1-0-0-0-0-0-0 |+--------------------------------+I dette eksempel øgede vi antallet af undersøgte bits til 10.
Husk, at bits undersøges fra højre mod venstre, så de ekstra nuller i dette eksempel er faktisk for de høje ordens nuller. Så det er i omvendt rækkefølge af den faktiske binære repræsentation.
Her er et eksempel for at demonstrere, hvad jeg mener:
SELECT BIN(567), EXPORT_SET(567,1,0,'',10);Resultat:
+------------+--------------------------------+| BIN(567) | EXPORT_SET(567;1,0;'',10) |+------+-------------------------------- -----+| 1000110111 | 1110110001 |+------------+--------------------------------+I dette tilfælde ligner de spejlbilleder. Grundlæggende er resultatet af
EXPORT_SET()
er i omvendt rækkefølge afBIN()
.Standardværdien for det femte argument er 64, så hvis vi udelader dette argument, er det, hvor mange bits der vil blive undersøgt.
VÆLG 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-0-0 |+------------------------ -------------------------------------------------- -------------------------------------------------- --------+Dette klippes lydløst til 64, så hvis du angiver en værdi uden for dette interval, vil det blive klippet til 64.
SELECT 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-0-0 |+------------------------ -------------------------------------------------- -------------------------------------------------- --------+Det er et heltal uden fortegn, så samme resultat, hvis du bruger en negativ værdi:
SELECT 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-0-0 |+------------------------ -------------------------------------------------- -------------------------------------------------- --------+Eksempel 5 – Brug af standardværdier
Vi kan udelade de sidste to argumenter for at bruge standardværdierne:
SELECT EXPORT_SET(9,'Til','Fra');Resultat:
+---------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------+| Til, Fra, Fra, Til, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Fra, Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off,Off |+--------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+