Função MySQL CONCAT()
Última actualização a 26 de Fevereiro de 2020 08:08:24 (UTC/GMT +8 horas)
CONCAT() função
Função MySQL CONCAT() é utilizada para adicionar duas ou mais cadeias de caracteres.
- Pode haver um ou mais argumentos.
- Devolve a string que resulta da concatenação dos argumentos.
- Devolve uma string não binária, se todos os argumentos forem strings não binárias.
- Devolve uma string binária, se os argumentos incluírem quaisquer strings binárias.
- Se o argumento for numérico, é convertido para a sua forma de string não binária equivalente.
- Retorna NULL, se qualquer argumento for NULL.
Syntax:
CONCAT (string1, string2,…)
Argumentos
>Nome | Descrição |
---|---|
string1 | Primeira cadeia a ser unida. |
string2 | Segunda cadeia a ser unida. Até N número de cordas pode ser especificado desta forma. |
Diagrama de sintaxe:
br>
Versão do MySQL: 5.6
br>>p>Representação pictórica da função MySQL CONCAT() function
Apresentação Vídeo
p>Seu navegador não suporta HTML5 video.
Exemplo da função MySQL Concat usando agrumentos
Um argumento:
mysql> SELECT CONCAT('w3resource');+----------------------+| CONCAT('w3resource') |+----------------------+| w3resource |+----------------------+1 row in set (0.00 sec)
Dois ou mais argumentos:
mysql> SELECT CONCAT('w3resource','.','com');+--------------------------------+| CONCAT('w3resource','.','com') |+--------------------------------+| w3resource.com |+--------------------------------+1 row in set (0.00 sec)
Um dos argumentos é NULL :
mysql> SELECT CONCAT('w3resource','.','com',NULL);+-------------------------------------+| CONCAT('w3resource','.','com',NULL) |+-------------------------------------+| NULL |+-------------------------------------+1 row in set (0.02 sec)
Discussão numérica:
mysql> SELECT CONCAT(102.33);+----------------+| CONCAT(102.33) |+----------------+| 102.33 |+----------------+1 row in set (0.00 sec)
Para cordas citadas, a concatenação pode ser feita colocando as cordas umas ao lado das outras :
mysql> SELECT 'w3resource' '.' 'com';+----------------+| w3resource |+----------------+| w3resource.com | +----------------+1 row in set (0.00 sec)
Exemplo da função MySQL CONCAT() nas colunas
A seguinte declaração MySQL adicionará valores da coluna pub_city com valores da coluna do país da tabela da editora colocando um ‘–>’ entre elas.
Código:
SELECT CONCAT(pub_city,'--> ',country)FROM publisher;
Tabela de amostra: editora
p>P>Sample Output:
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 a cláusula WHERE
A seguinte declaração MySQL adicionará a coluna pub_city e country por um ‘–>’ para aqueles editores cujo nome concatenado e escritório de país é ‘Ultra Press Inc.’. London’
Código:
SELECT CONCAT(pub_city,'--> ',country)FROM publisherWHERE CONCAT(pub_name,' ',country_office)="Ultra Press Inc. London";
Tabela de amostras: editora
p>p>Sample Output:
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 retorna NULL se algum campo contiver NULL
A seguinte declaração MySQL adicionará o nome do livro e a coluna pub_lang por um ‘–>’ para todos os livros.
Código:
SELECT CONCAT(book_name,'--> ',pub_lang)FROM book_mast;
Tabela de amostra: book_mast
p>Sample Output:
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)
A saída acima mostra que, quando o valor de qualquer uma das duas colunas mencionadas acima é NULL, a saída retorna NULL, menção por cor vermelha.
MySQL CONCAT usando JOINS e wildcard
A seguinte declaração MySQL mostrará a combinação de nome e apelido e título de emprego para aqueles empregados que contenham a palavra Smith à sua combinação de primeiro e último nome.
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%';
Tabela de amostra: empregados
p>Tabela de amostra: empregos
p>P>Saída de amostra:
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>
Trythe Consultas seguintes
Escrever uma instrução SQL para mostrar a cidade editora e o nome de acordo com o grupo na cidade editora.
Escrever uma instrução SQL para exibir a cidade editora e o nome e o escritório do país com o título adequado para os editores cujo escritório do país e cidade editora se encontram no mesmo local.
Escrever uma instrução SQL para exibir o nome da editora, escritório do país e um número máximo de sucursais com o título adequado para os editores que mantêm em e acima de 15 sucursais em todo o mundo.
p>Tabela de amostras: editora
MySQL Online Editor
Exibir resposta