Ce face Operatori pe biți
Operatorii pe biți tratează numerele ca șiruri de 0 și 1. Sunt folosiți pentru drepturi și opțiuni stocate ca biți într-o singură coloană: drepturi & 4 verifică dacă bitul 4 este activ.
~ inversează toți cei 64 de biți (de aceea ~0 este un număr foarte mare). BIT_COUNT() numără biții de 1.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Numere întregi. |
n |
Cu câte poziții se face deplasarea. |
Ce returnează
Un număr întreg fără semn (64 de biți).
Exemple
Exemplul 1: Rezultatele operatorilor
SELECT 5 & 3 AS si, 5 | 3 AS sau, 5 ^ 3 AS sau_exclusiv,
1 << 4 AS stanga, 256 >> 2 AS dreapta, BIT_COUNT(7) AS biti_activi;
Rezultat
+----+-----+--------------+--------+---------+-------------+
| si | sau | sau_exclusiv | stanga | dreapta | biti_activi |
+----+-----+--------------+--------+---------+-------------+
| 1 | 7 | 6 | 16 | 64 | 3 |
+----+-----+--------------+--------+---------+-------------+
Exemplul 2: Drepturi stocate ca biți
CREATE TABLE utilizatori (nume VARCHAR(10), drepturi INT);
-- 1 = citire, 2 = scriere, 4 = ștergere
INSERT INTO utilizatori VALUES ('ana', 7), ('dan', 1), ('ioana', 3);
SELECT nume,
drepturi & 2 > 0 AS poate_scrie,
drepturi & 4 > 0 AS poate_sterge,
BIT_COUNT(drepturi) AS cate_drepturi
FROM utilizatori;
Rezultat
+-------+-------------+--------------+---------------+
| nume | poate_scrie | poate_sterge | cate_drepturi |
+-------+-------------+--------------+---------------+
| ana | 1 | 1 | 3 |
| dan | 0 | 0 | 1 |
| ioana | 1 | 0 | 2 |
+-------+-------------+--------------+---------------+
Greșeli frecvente
- Confunzi
^cu ridicarea la putere. În MySQL,^este SAU exclusiv; pentru putere foloseștePOW().
Comenzi înrudite
BIT_AND(), BIT_OR(), BIT_XOR(): Combină pe biți toate valorile unui grup: ȘI, SAU, respectiv SAU exclusiv.BIN() și OCT(): Returnează reprezentarea unui număr în baza 2 (BIN) sau în baza 8 (OCT), ca text.POW(): Ridică un număr la o putere.