EXPORT_SET() și MAKE_SET() în MySQL

Transformă biții unui număr în texte: EXPORT_SET pentru fiecare bit, MAKE_SET doar pentru biții activi.

Sintaxă
EXPORT_SET(biti, text_pornit, text_oprit[, separator[, numar_biti]])
MAKE_SET(biti, text1, text2, ...)

Ce face EXPORT_SET() și MAKE_SET()

EXPORT_SET() parcurge biții numărului de la dreapta la stânga și scrie text_pornit pentru biții 1 și text_oprit pentru biții 0.

MAKE_SET() alege din listă doar textele corespunzătoare biților 1: bitul 0 → primul text, bitul 1 → al doilea etc. Sunt utile când drepturi sau opțiuni sunt stocate ca biți într-un singur număr.

Parametri

Parametru Descriere
biti Numărul ai cărui biți sunt citiți.
text_pornit, text_oprit Textele pentru bit 1, respectiv 0 (EXPORT_SET).
separator Opțional. Implicit virgula.
numar_biti Opțional. Câți biți să afișeze (implicit 64).
text1, text2, ... Textele pentru fiecare bit (MAKE_SET).

Ce returnează

Textul construit.

Exemple

Exemplul 1: Același număr, două funcții

SELECT EXPORT_SET(5, 'Y', 'N', ',', 4) AS export_set,
       MAKE_SET(5, 'citire', 'scriere', 'stergere') AS make_set;

Rezultat

+------------+-----------------+
| export_set | make_set        |
+------------+-----------------+
| Y,N,Y,N    | citire,stergere |
+------------+-----------------+

Greșeli frecvente

  • Citești rezultatul lui EXPORT_SET() de la stânga la dreapta ca pe un număr binar. Funcția pune primul bitul cel mai puțin semnificativ, deci ordinea este inversă față de BIN().

Comenzi înrudite

  • BIN() și OCT(): Returnează reprezentarea unui număr în baza 2 (BIN) sau în baza 8 (OCT), ca text.
  • Operatori pe biți: Lucrează cu biții numerelor: ȘI (&), SAU (|), SAU exclusiv (^), inversare (~), deplasări (<<, >>).
  • FIND_IN_SET(): Caută o valoare într-un text cu elemente separate prin virgulă și returnează poziția.