Ce face LENGTH()
LENGTH() numără octeții ocupați de text. În utf8mb4, literele fără diacritice ocupă 1 octet, iar ă, â, î, ș, ț ocupă câte 2. De aceea LENGTH('Iași') este 5, nu 4.
Pentru numărul de caractere folosește CHAR_LENGTH(). OCTET_LENGTH() este sinonim pentru LENGTH(), iar BIT_LENGTH() dă lungimea în biți (octeți × 8).
Parametri
| Parametru | Descriere |
|---|---|
sir |
Textul măsurat. Dacă este NULL, rezultatul este NULL. |
Ce returnează
Numărul de octeți, ca număr întreg.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE clienti (
id INT PRIMARY KEY,
nume VARCHAR(50),
oras VARCHAR(30),
email VARCHAR(100),
telefon VARCHAR(20)
);
INSERT INTO clienti VALUES
(1, 'Ana Pop', 'Iași', 'ana.pop@exemplu.ro', '0722-123-456'),
(2, 'bogdan ionescu', 'Cluj-Napoca', 'bogdan@firma.ro', '0744 555 101'),
(3, 'Cristina Marin', 'Brașov', 'cristina@exemplu.ro', '0733.222.909'),
(4, 'Dan Stoica', 'Timișoara', NULL, '0755123123');
Exemplul 1: Octeți, caractere și biți
SELECT LENGTH('Iași') AS octeti,
CHAR_LENGTH('Iași') AS caractere,
BIT_LENGTH('Iași') AS biti,
OCTET_LENGTH('Iași') AS sinonim;
Rezultat
+--------+-----------+------+---------+
| octeti | caractere | biti | sinonim |
+--------+-----------+------+---------+
| 5 | 4 | 40 | 5 |
+--------+-----------+------+---------+
Exemplul 2: Găsirea textelor prea lungi pentru o coloană în octeți
SELECT oras, LENGTH(oras) AS octeti, CHAR_LENGTH(oras) AS caractere
FROM clienti
ORDER BY id;
Rezultat
+-------------+--------+-----------+
| oras | octeti | caractere |
+-------------+--------+-----------+
| Iași | 5 | 4 |
| Cluj-Napoca | 11 | 11 |
| Brașov | 7 | 6 |
| Timișoara | 10 | 9 |
+-------------+--------+-----------+
Greșeli frecvente
- Folosești
LENGTH()ca să validezi „maxim 50 de caractere”. Cu diacritice, rezultatul e mai mare decât numărul de litere. FoloseșteCHAR_LENGTH().
Comenzi înrudite
CHAR_LENGTH(): Returnează numărul de caractere dintr-un text, indiferent câți octeți ocupă fiecare.SUBSTRING(): Extrage o bucată dintr-un text, pornind de la o poziție și cu o lungime dată.LEFT(): Returnează primele N caractere dintr-un text.