Articles

Funzione MySQL CONCAT()

Ultimo aggiornamento del 26 febbraio 2020 08:08:24 (UTC/GMT +8 ore)

Funzione CONCAT()

La funzione MySQL CONCAT() è usata per aggiungere due o più stringhe.

  • Ci possono essere uno o più argomenti.
  • Ritorna la stringa che risulta dalla concatenazione degli argomenti.
  • Ritorna una stringa non binaria, se tutti gli argomenti sono stringhe non binarie.
  • Ritorna una stringa binaria, se gli argomenti includono qualsiasi stringa binaria.
  • Se l’argomento è numerico, viene convertito nella sua forma equivalente di stringa non binaria.
  • Ritorna NULL se qualsiasi argomento è NULL.

Sintassi:

CONCAT (string1, string2,…)

Argomenti

Nome Descrizione
stringa1 Prima stringa da unire.
stringa2 Seconda stringa da unire. Fino a un numero N di stringhe può essere specificato in questo modo.

Diagramma sintattico:

Funzione MySQL CONCAT() - Diagramma sintattico

MySQL Versione: 5.6

MySQL: Funzione CONCAT() - w3resource

Rappresentazione pittografica della funzione MySQL CONCAT()

rappresentazione pittografica della funzione MySQL CONCAT

Presentazione video

Il tuo browser non supporta il video HTML5.

Esempio della funzione MySQL Concat utilizzando gli argomenti

Un argomento:

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

Due o più argomenti:

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

Uno degli argomenti è NULL :

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

Argomento numerico:

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

Per le stringhe quotate, la concatenazione può essere eseguita mettendo le stringhe una accanto all’altra:

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

Esempio della funzione MySQL CONCAT() sulle colonne

La seguente istruzione MySQL aggiungerà i valori della colonna pub_city con i valori della colonna country della tabella publisher mettendo un ‘–>’ tra loro.

Codice:

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

Tabella campione: publisher

Esito campione:

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 clausola WHERE

La seguente istruzione MySQL aggiungerà la colonna pub_city e country con un ‘–>’ per quegli editori il cui nome concatenato e la sede del paese è ‘Ultra Press Inc. London’

Codice:

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

Tabella campione: editore

Esito campione:

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 restituisce NULL se qualsiasi campo contiene NULL

La seguente istruzione MySQL aggiungerà il nome del libro e la colonna pub_lang con un ‘–>’ per tutti i libri.

Codice:

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

Tabella d’esempio: book_mast

Esito campione:

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)

L’output di cui sopra mostra che, quando il valore di una delle due colonne menzionate sopra è NULL, l’output restituisce NULL, menzionato dal colore rosso.

MySQL CONCAT usando JOINS e caratteri jolly

La seguente istruzione MySQL mostrerà la combinazione di nome, cognome e titolo di lavoro per quegli impiegati che contengono la parola Smith nella loro combinazione di nome e cognome.

Codice:

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%';

Tabella campione: dipendenti

Tabella campione: lavori

Uscita campione:

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>

Prova le seguenti query

Scrivere una dichiarazione SQL per visualizzare la città e il nome dell’editore in base al gruppo sulla città dell’editore.

Scrivi un comando SQL per visualizzare la città e il nome dell’editore e l’ufficio nazionale con un titolo adatto per quegli editori che hanno l’ufficio nazionale e la città dell’editore nello stesso posto.

Scrivi un comando SQL per visualizzare il nome dell’editore, l’ufficio nazionale e il numero massimo di filiali con il titolo adatto per quegli editori che mantengono più di 15 filiali nel mondo.

Tabella d’esempio: editore

MySQL Online Editor

Visualizza risposta

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

SELECT CONCAT(‘City:- ‘,pub_city,’ Nome editore :- ‘,pub_name,’ Ufficio paese :- ‘,country_office)
FROM publisher
WHERE pub_city=country_office
GROUP BY pub_city;

SELECT CONCAT(‘Publisher Name :- ‘,pub_name,
‘Country Office:- ‘,country_office,
‘Numero massimo di filiali:- ‘,Max(no_of_branch))
FROM publisher
GROUP BY pub_name
HAVING Max(no_of_branch)>=15;

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *