Ce face INSERT() (funcție pentru șiruri)
Funcția INSERT() pune text_nou în sir, începând de la pozitie, și șterge lungime caractere de acolo. Cu lungime 0, doar inserează, fără să șteargă nimic.
Nu are legătură cu instrucțiunea INSERT INTO, care adaugă rânduri în tabel.
Parametri
| Parametru | Descriere |
|---|---|
sir |
Textul original. |
pozitie |
De unde începe înlocuirea (de la 1). |
lungime |
Câte caractere se șterg. |
text_nou |
Textul inserat. |
Ce returnează
Textul modificat. Dacă poziția este în afara textului, returnează textul original.
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: Înlocuire și inserare
SELECT INSERT('Bună ziua', 1, 4, 'Salut') AS inlocuire,
INSERT('0722123456', 5, 0, ' ') AS inserare;
Rezultat
+------------+-------------+
| inlocuire | inserare |
+------------+-------------+
| Salut ziua | 0722 123456 |
+------------+-------------+
Exemplul 2: Mascarea unei părți din email
SELECT email, INSERT(email, 2, LOCATE('@', email) - 2, '***') AS mascat
FROM clienti
WHERE email IS NOT NULL
ORDER BY id;
Rezultat
+---------------------+-----------------+
| email | mascat |
+---------------------+-----------------+
| ana.pop@exemplu.ro | a***@exemplu.ro |
| bogdan@firma.ro | b***@firma.ro |
| cristina@exemplu.ro | c***@exemplu.ro |
+---------------------+-----------------+
Greșeli frecvente
- Confunzi funcția cu instrucțiunea
INSERT INTO. Funcția doar transformă un text, nu adaugă date în tabel.
Comenzi înrudite
REPLACE(): Înlocuiește toate aparițiile unui text cu alt text.SUBSTRING(): Extrage o bucată dintr-un text, pornind de la o poziție și cu o lungime dată.INSERT INTO: Adaugă unul sau mai multe rânduri noi într-un tabel.