Ce face CONCAT
CONCAT lipește valorile primite, în ordine. Numerele sunt transformate automat în text.
Atenție: dacă oricare valoare este NULL, CONCAT returnează NULL. CONCAT_WS (cu separator) primește întâi separatorul și sare peste valorile NULL.
În MySQL, || nu lipește texte (este „sau” logic) și + adună numere.
Parametri
| Parametru | Descriere |
|---|---|
text1, text2, ... |
Valorile lipite. |
separator |
Doar la CONCAT_WS: textul pus între valori. |
Ce returnează
Textul rezultat sau NULL.
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,
nume VARCHAR(50) NOT NULL,
categorie VARCHAR(30),
pret INT,
stoc INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 'Electronice', 3500, 4),
(2, 'Mouse', 'Electronice', 80, 25),
(3, 'Birou', 'Mobilier', 900, 0),
(4, 'Scaun', 'Mobilier', 650, 7),
(5, 'Monitor', 'Electronice', 1200, 3);
Exemplul 1: Text din mai multe coloane
SELECT CONCAT(nume, ' - ', pret, ' lei') AS eticheta FROM produse ORDER BY pret;
Rezultat
+--------------------+
| eticheta |
+--------------------+
| Mouse - 80 lei |
| Scaun - 650 lei |
| Birou - 900 lei |
| Monitor - 1200 lei |
| Laptop - 3500 lei |
+--------------------+
Exemplul 2: Separator comun cu CONCAT_WS
SELECT CONCAT_WS(' / ', categorie, nume, stoc) AS linie FROM produse WHERE id <= 2;
Rezultat
+--------------------------+
| linie |
+--------------------------+
| Electronice / Laptop / 4 |
| Electronice / Mouse / 25 |
+--------------------------+
Exemplul 3: Capcana NULL
SELECT CONCAT('Telefon: ', NULL) AS cu_concat, CONCAT_WS(', ', 'Cluj', NULL, 'Romania') AS cu_concat_ws;
Rezultat în MySQL
+-----------+---------------+
| cu_concat | cu_concat_ws |
+-----------+---------------+
| NULL | Cluj, Romania |
+-----------+---------------+
Greșeli frecvente
- Lipești texte cu
+:'Ana' + ' Pop'dă 0, pentru că MySQL încearcă să adune numere. - O coloană
NULLface tot rezultatulNULL. FoloseșteCONCAT_WSsauCOALESCE(coloana, '').
Comenzi înrudite
COALESCE / IFNULL: Înlocuiește NULL cu o valoare implicită: returnează prima valoare care nu este NULL.AS (alias): Dă un nume nou (alias) unei coloane sau unui tabel în rezultatul interogării.LIKE: Caută texte după un model: începe cu, se termină cu, conține.