INSERT() (funcție pentru șiruri) în MySQL

Înlocuiește o bucată de text, de la o poziție dată, cu alt text.

Sintaxă
INSERT(sir, pozitie, lungime, text_nou)

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.