Ce face INSTR()
INSTR() face același lucru ca LOCATE() cu doi parametri, dar ordinea este inversă: întâi textul, apoi ce cauți. Returnează 0 dacă textul nu apare.
Parametri
| Parametru | Descriere |
|---|---|
sir |
Textul în care se caută. |
cauta |
Textul căutat. |
Ce returnează
Poziția (de la 1) sau 0.
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: Produse care conțin un cuvânt
SELECT nume, INSTR(nume, 'fir') AS pozitie
FROM produse
WHERE INSTR(nume, 'fir') > 0;
Rezultat
+------------------+---------+
| nume | pozitie |
+------------------+---------+
| Mouse fără fir | 12 |
+------------------+---------+
Exemplul 2: Comparație cu LOCATE
SELECT INSTR('Cluj-Napoca', '-') AS instr, LOCATE('-', 'Cluj-Napoca') AS locate;
Rezultat
+-------+--------+
| instr | locate |
+-------+--------+
| 5 | 5 |
+-------+--------+
Greșeli frecvente
- Folosești
INSTR()pe o coloană mare doar ca să afli dacă textul există. Pentru căutări frecvente, un index FULLTEXT cuMATCH()este mult mai rapid.
Comenzi înrudite
LOCATE(): Găsește poziția primei apariții a unui text în alt text (0 dacă lipsește).LIKE: Caută texte după un model: începe cu, se termină cu, conține.MATCH() ... AGAINST(): Căutare full-text în coloane de text, după cuvinte, cu scor de relevanță; are nevoie de un index FULLTEXT.