LENGTH() în MySQL

Returnează lungimea unui text în octeți (bytes), nu în caractere.

Sintaxă
LENGTH(sir)

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ște CHAR_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.