Articles

Función CONCAT() de MySQL

Última actualización el 26 de febrero de 2020 08:08:24 (UTC/GMT +8 horas)

Función CONCAT()

La función CONCAT() de MySQL se utiliza para sumar dos o más cadenas.

  • Puede haber uno o más argumentos.
  • Devuelve la cadena que resulta de concatenar los argumentos.
  • Devuelve una cadena no binaria, si todos los argumentos son cadenas no binarias.
  • Devuelve una cadena binaria, si los argumentos incluyen alguna cadena binaria.
  • Si el argumento es numérico, se convierte a su forma equivalente de cadena no binaria.
  • Devuelve NULL si algún argumento es NULL.

Sintaxis:

CONCAT (string1, string2,…)

Argumentos

Nombre Descripción
Cadena1 Primera cadena a unir.
cadena2 Segunda cadena a unir. Se pueden especificar hasta N número de cadenas de esta manera.

Diagrama sintáctico:

Función CONCAT() de MySQL - Diagrama sintáctico

Versión de MySQL: 5.6

MySQL: Función CONCAT() - w3resource

Representación pictórica de la función CONCAT() de MySQL

Representación pictórica de la función CONCAT de MySQL

Presentación en vídeo

Su navegador no soporta vídeo HTML5.

Ejemplo de la función Concat de MySQL utilizando agrumentos

Un argumento:

mysql> SELECT CONCAT('w3resource');+----------------------+| CONCAT('w3resource') |+----------------------+| w3resource |+----------------------+1 row in set (0.00 sec)

Dos o más argumentos:

mysql> SELECT CONCAT('w3resource','.','com');+--------------------------------+| CONCAT('w3resource','.','com') |+--------------------------------+| w3resource.com |+--------------------------------+1 row in set (0.00 sec)

Uno de los argumentos es NULL :

mysql> SELECT CONCAT('w3resource','.','com',NULL);+-------------------------------------+| CONCAT('w3resource','.','com',NULL) |+-------------------------------------+| NULL |+-------------------------------------+1 row in set (0.02 sec)

Un argumento numérico:

mysql> SELECT CONCAT(102.33);+----------------+| CONCAT(102.33) |+----------------+| 102.33 |+----------------+1 row in set (0.00 sec)

Para las cadenas citadas, la concatenación se puede realizar colocando las cadenas una al lado de la otra :

mysql> SELECT 'w3resource' '.' 'com';+----------------+| w3resource |+----------------+| w3resource.com | +----------------+1 row in set (0.00 sec)

Ejemplo de la función CONCAT() de MySQL en columnas

La siguiente sentencia de MySQL sumará los valores de la columna pub_city con los valores de la columna country de la tabla publisher colocando un ‘–>’ entre ellos.

Código:

SELECT CONCAT(pub_city,'--> ',country)FROM publisher; 

Tabla de ejemplo: publisher

Salida de ejemplo:

mysql> SELECT CONCAT(pub_city,'--> ',country) -> FROM publisher;+---------------------------------+| CONCAT(pub_city,'--> ',country) |+---------------------------------+| New York--> USA | | Mumbai--> India | | Adelaide--> Australia | | London--> UK | | Houstan--> USA | | New York--> USA | | Cambridge--> UK | | New Delhi--> India | +---------------------------------+8 rows in set (0.00 sec)

MySQL CONCAT usando la cláusula WHERE

La siguiente sentencia de MySQL añadirá la columna pub_city y country mediante un ‘–>’ para aquellos editores cuyo nombre concatenado y oficina de país sea ‘Ultra Press Inc. London’

Código:

SELECT CONCAT(pub_city,'--> ',country)FROM publisherWHERE CONCAT(pub_name,' ',country_office)="Ultra Press Inc. London"; 

Tabla de ejemplo: editorial

Salida de ejemplo:

mysql> SELECT CONCAT(pub_city,'--> ',country) -> FROM publisher -> WHERE CONCAT(pub_name,' ',country_office)="Ultra Press Inc. London";+---------------------------------+| CONCAT(pub_city,'--> ',country) |+---------------------------------+| London--> UK |+---------------------------------+1 row in set (0.02 sec)

MySQL CONCAT devuelve NULL si algún campo contiene NULL

La siguiente sentencia MySQL añadirá el nombre del libro y la columna pub_lang mediante un ‘–>’ para todos los libros.

Código:

SELECT CONCAT(book_name,'--> ',pub_lang)FROM book_mast;

Tabla de ejemplo: book_mast

Salida de ejemplo:

mysql> SELECT CONCAT(book_name,'--> ',pub_lang) -> FROM book_mast;+------------------------------------------------+| CONCAT(book_name,'--> ',pub_lang) |+------------------------------------------------+| Introduction to Electrodynamics--> English || Understanding of Steel Construction--> English || Guide to Networking--> Hindi || Transfer of Heat and Mass--> English || NULL || Fundamentals of Heat--> German || Advanced 3d Graphics--> Hindi || Human Anatomy--> German || Mental Health Nursing--> English || Fundamentals of Thermodynamics--> English || The Experimental Analysis of Cat--> French || The Nature of World--> English || Environment a Sustainable Future--> German || NULL || Anatomy & Physiology--> Hindi || Networks and Telecommunications--> French |+------------------------------------------------+16 rows in set (0.01 sec)

La salida anterior muestra que, cuando el valor de cualquiera de las dos columnas mencionadas anteriormente es NULL, la salida devuelve NULL, mención de color rojo.

MySQL CONCAT usando JOINS y caracteres comodín

La siguiente sentencia de MySQL mostrará la combinación de nombre y apellido y título de trabajo para aquellos empleados que contengan la palabra Smith a su combinación de nombre y apellido.

Código:

SELECT CONCAT( first_name, ' ', last_name ) AS "name", job_titleFROM employees e, jobs jWHERE e.job_id = j.job_idAND CONCAT( first_name, ' ', last_name ) LIKE '%Smith%';

Tabla de ejemplo: empleados

Tabla de ejemplo: puestos de trabajo

Salida de ejemplo:

mysql> SELECT CONCAT( first_name, ' ', last_name ) AS "name", job_title -> FROM employees e, jobs j -> WHERE e.job_id = j.job_id -> AND CONCAT( first_name, ' ', last_name ) LIKE '%Smith%';+---------------+----------------------+| name | job_title |+---------------+----------------------+| Lindsey Smith | Sales Representative || William Smith | Sales Representative |+---------------+----------------------+2 rows in set (0.00 sec)

PHPScript

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>example-concat-function - php mysql examples | w3resource</title><meta name="description" content="example-concat-function - php mysql examples | w3resource"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"></head><body><div class="container"><div class="row"><div class="col-md-12"><h2>list of publisher's city and country with 'publisher's city--->country' format:</h2><table class='table table-bordered'><tr><th>Publisher's City</th></tr><?php$hostname="your_hostname";$username="your_username";$password="your_password";$db = "your_dbname";$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);foreach($dbh->query('SELECT CONCAT(pub_city,"--> ",country)FROM publisher') as $row) {echo "<tr>";echo "<td>" . $row . "</td>";echo "</tr>";}?></tbody></table></div></div></div></body></html>

JSPScript

<%@page contentType="text/html" pageEncoding="UTF-8"%><%@ page import="java.sql.*" %><%@ page import="java.io.*" %><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>example-concat-function</title></head><body><%try {Class.forName("com.mysql.jdbc.Driver").newInstance();String Host = "jdbc:mysql://localhost:3306/w3resour_bookinfo";Connection connection = null;Statement statement = null;ResultSet rs = null;connection = DriverManager.getConnection(Host, "root", "datasoft123");statement = connection.createStatement();String Data ="SELECT CONCAT(pub_city,'--> ',country) FROM publisher";rs = statement.executeQuery(Data);%><TABLE border="1"><tr width="10" bgcolor="#9979"><td>Publisher's City</td></tr><%while (rs.next()) {%><TR><TD><%=rs.getString("CONCAT(pub_city,'--> ',country)")%></TD></TR><% } %></table><%rs.close();statement.close();connection.close();} catch (Exception ex) {out.println("Cant connect to database.");}%></body></html>

Prueba las siguientes consultas

Escriba una sentencia SQL para mostrar la ciudad y el nombre del editor según el grupo en la ciudad del editor.

Escriba una sentencia SQL para mostrar la ciudad y el nombre del editor y la oficina del país con un título adecuado para aquellos editores cuya oficina del país y la ciudad de publicación están en el mismo lugar.

Escriba una sentencia SQL para mostrar el nombre del editor, la oficina del país y un número máximo de sucursales con el título adecuado para aquellos editores que mantienen sobre y más de 15 sucursales en todo el mundo.

Tabla de ejemplo : editor

MySQL Online Editor

Mostrar respuesta

SELECT CONCAT(pub_city,’ — ‘,pub_name)
FROM publisher
GROUP BY pub_city;

SELECT CONCAT(‘City:- ‘,pub_city,’ Nombre del editor :- ‘,pub_name,’ Oficina del país :- ‘,oficina_país)
FROM publisher
WERE pub_city=oficina_país
GROUP BY pub_city;

SELECT CONCAT(‘Nombre del editor :- ‘,pub_name,
‘Oficina del país:- ‘,oficina_país,
‘Mayores sucursales:- ‘,Max(no_de_sucursal))
FROM publisher
GROUP BY pub_name
HAVING Max(no_de_sucursal)>=15;

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *