Ce face SUBSTRING()
SUBSTRING() taie o parte din text. Pozițiile încep de la 1, nu de la 0. O poziție negativă se numără de la sfârșitul textului. Funcția lucrează pe caractere, deci diacriticele nu sunt tăiate greșit.
SUBSTR() și MID() sunt sinonime pentru SUBSTRING().
Parametri
| Parametru | Descriere |
|---|---|
sir |
Textul original. |
pozitie |
De unde începe extragerea. 1 este primul caracter, -1 ultimul. |
lungime |
Opțional. Câte caractere să extragă. Fără ea, extrage până la final. |
Ce returnează
Bucata de text extrasă (șir gol dacă poziția depășește lungimea).
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
cod VARCHAR(20),
nume VARCHAR(50),
pret DECIMAL(10,2),
etichete VARCHAR(100)
);
INSERT INTO produse VALUES
(1, 'LAP-2026-01', 'Laptop ultraportabil', 3499.90, 'electronice,birou,promo'),
(2, 'MOU-2025-07', 'Mouse fără fir', 79.50, 'electronice,accesorii'),
(3, 'SCA-2026-03', 'Scaun ergonomic', 1249.00, 'mobilier,birou'),
(4, 'CAB-2024-11', 'Cablu USB-C', 35.00, 'accesorii,promo');
Exemplul 1: Poziții pozitive, negative și sinonimele
SELECT SUBSTRING('Timișoara', 1, 4) AS inceput,
SUBSTRING('Timișoara', -4) AS sfarsit,
SUBSTR('Timișoara', 5, 2) AS cu_substr,
MID('Timișoara', 5, 2) AS cu_mid;
Rezultat
+---------+---------+-----------+--------+
| inceput | sfarsit | cu_substr | cu_mid |
+---------+---------+-----------+--------+
| Timi | oara | șo | șo |
+---------+---------+-----------+--------+
Exemplul 2: Anul din codul produsului
SELECT cod, SUBSTRING(cod, 5, 4) AS an
FROM produse
ORDER BY id;
Rezultat
+-------------+------+
| cod | an |
+-------------+------+
| LAP-2026-01 | 2026 |
| MOU-2025-07 | 2025 |
| SCA-2026-03 | 2026 |
| CAB-2024-11 | 2024 |
+-------------+------+
Greșeli frecvente
- Pornești numărătoarea de la 0, ca în PHP sau JavaScript.
SUBSTRING('abc', 0)returnează un șir gol.
Comenzi înrudite
LEFT(): Returnează primele N caractere dintr-un text.RIGHT(): Returnează ultimele N caractere dintr-un text.SUBSTRING_INDEX(): Returnează textul dinaintea (sau de după) a N-a apariție a unui separator.LOCATE(): Găsește poziția primei apariții a unui text în alt text (0 dacă lipsește).