Agregar cadenas a un campo existente en MySQL
Hoy aprenderemos a concatenar o agregar valores de cadena en el campo MySQL usando las funciones CONCAT()
y CONCAT_WS()
.
Use CONCAT()
y CONCAT_WS()
para agregar cadenas a un campo existente en MySQL
Para aprender sobre CONCAT()
y CONCAT_WS()
, usemos las siguientes consultas para crear una tabla de categoría
que contenga dos campos: category_id
y category_code
.
Código de ejemplo:
CREATE TABLE category(
category_id INT,
category_code VARCHAR(50)
);
INSERT INTO category (category_id, category_code)
VALUES
(1, 'Windows_1'),
(2, 'Windows_2'),
(3, 'Windows_1');
SELECT * FROM category;
Producción :
+-------------+---------------+
| category_id | category_code |
+-------------+---------------+
| 1 | Windows_1 |
| 2 | Windows_2 |
| 3 | Windows_1 |
+-------------+---------------+
3 rows in set (0.00 sec)
Use CONCAT()
para agregar cadenas a un campo existente en MySQL
Ahora, concatenamos la palabra estándar
con cada valor en la columna category_code
usando el método CONCAT()
.
Código de ejemplo:
UPDATE category SET category_code = CONCAT(category_code, 'standard');
Producción :
+-------------+-------------------+
| category_id | category_code |
+-------------+-------------------+
| 1 | Windows_1standard |
| 2 | Windows_2standard |
| 3 | Windows_1standard |
+-------------+-------------------+
3 rows in set (0.02 sec)
El método CONCAT()
toma uno o varios argumentos de tipo cadena y los concatena en una sola cadena. Esta función necesita al menos un parámetro; de lo contrario, se generaría un error.
Si la expresión es un valor numérico o una cadena no binaria, entonces el método CONCAT()
devuelve la cadena binaria o la cadena no binaria. De manera similar, si la expresión es una cadena NULL
o binaria, el método CONCAT()
devuelve NULL
o cadena binaria.
El resultado anterior muestra que la palabra estándar
se añade sin ningún separador. Para agregar un separador, ejecutamos la consulta de la siguiente manera.
Código de ejemplo:
UPDATE category SET category_code = CONCAT(category_code, '_','standard');
Producción :
+-------------+--------------------+
| category_id | category_code |
+-------------+--------------------+
| 1 | Windows_1_standard |
| 2 | Windows_2_standard |
| 3 | Windows_1_standard |
+-------------+--------------------+
3 rows in set (0.00 sec)
Supongamos que tenemos una cadena que consta de 3 palabras que queremos agregar con un separador, entonces haremos lo siguiente usando el método CONCAT()
.
Código de ejemplo:
UPDATE category SET
category_code = CONCAT(category_code,'_','standard1','_','standard2','_', 'standard3');
Producción :
+-------------+-----------------------------------------+
| category_id | category_code |
+-------------+-----------------------------------------+
| 1 | Windows_1_standard1_standard2_standard3 |
| 2 | Windows_2_standard1_standard2_standard3 |
| 3 | Windows_1_standard1_standard2_standard3 |
+-------------+-----------------------------------------+
3 rows in set (0.06 sec)
Ahora, piensa en 6 palabras en una cadena que quieras agregar; el código ya no estaría limpio. Entonces, aquí es donde usamos la función CONCAT_WS()
.
Use CONCAT_WS()
para agregar cadenas a un campo existente en MySQL
Código de ejemplo:
UPDATE category SET
category_code = CONCAT_WS('_',category_code,'standard1','standard2','standard3');
Producción :
+-------------+-----------------------------------------+
| category_id | category_code |
+-------------+-----------------------------------------+
| 1 | Windows_1_standard1_standard2_standard3 |
| 2 | Windows_2_standard1_standard2_standard3 |
| 3 | Windows_1_standard1_standard2_standard3 |
+-------------+-----------------------------------------+
3 rows in set (0.00 sec)
Al igual que CONCAT()
, el método CONCAT_WS()
también toma argumentos de tipo cadena. El primer argumento es el separador y los restantes son los valores de cadena que queremos agregar.
Este método ignora la expresión con un valor NULL
y devuelve un valor NULL
si el separador es NULL
.