Ce face LOCATE()
LOCATE() returnează poziția, numărată de la 1, la care apare textul căutat. Dacă nu îl găsește, returnează 0. Al treilea parametru spune de unde să înceapă căutarea.
POSITION(cauta IN sir) este sinonim, cu sintaxa din standardul SQL. Căutarea urmează colația: cu utf8mb4_0900_ai_ci nu contează literele mari și nici diacriticele, deci 's' găsește și 'ș'.
Parametri
| Parametru | Descriere |
|---|---|
cauta |
Textul căutat. |
sir |
Textul în care se caută. |
pozitie_start |
Opțional. Poziția de la care începe căutarea. |
Ce returnează
Poziția găsită sau 0.
Exemple
Exemplul 1: Poziția unui text și sinonimul POSITION
SELECT LOCATE('ov', 'Brașov') AS locate,
POSITION('ov' IN 'Brașov') AS position,
LOCATE('x', 'Brașov') AS lipsa;
Rezultat
+--------+----------+-------+
| locate | position | lipsa |
+--------+----------+-------+
| 5 | 5 | 0 |
+--------+----------+-------+
Exemplul 2: Căutare de la o poziție și efectul colației
SELECT LOCATE('a', 'banana', 3) AS de_la_3,
LOCATE('s', 'Brașov') AS fara_diacritice;
Rezultat
+---------+-----------------+
| de_la_3 | fara_diacritice |
+---------+-----------------+
| 4 | 4 |
+---------+-----------------+
Greșeli frecvente
- Inversezi parametrii față de
INSTR(): laLOCATE()textul căutat este primul, laINSTR()este al doilea.
Comenzi înrudite
INSTR(): Returnează poziția primei apariții a unui subșir; ca LOCATE(), cu parametrii inversați.SUBSTRING_INDEX(): Returnează textul dinaintea (sau de după) a N-a apariție a unui separator.LIKE: Caută texte după un model: începe cu, se termină cu, conține.