кодесурса
«MYSQL

MySQL CONCAT_WS () функция

script1adsense2code
script1adsense3code

Функция CONCAT_WS ()

Функция MySQL CONCAT_WS () используется для объединения двух или более строк с разделителем. Разделитель, указанный в первом аргументе, добавляется между двумя строками. Сам разделитель может быть строкой. Если разделитель равен NULL, результат равен NULL.

Синтаксис:

 CONCAT_WS (разделитель, строка1, строка2,…)

аргументы

название Описание
разделитель Определяет разделитель, добавленный между строками при соединении.
string1 Первая строка для соединения.
строка2 Вторая строка для соединения. Таким способом можно указать до N строк.

Синтаксическая диаграмма:

«MySQL

Версия MySQL: 5.6

«MySQL:

Видео презентация

Иллюстрированная презентация

«MySQL

Пример функции MySQL CONCAT_WS ()

Следующая инструкция MySQL добавляет первый аргумент и второй аргумент с разделителем ",".

Код:

SELECT CONCAT_WS(',','1st string','2nd string');

Пример вывода:

 mysql> SELECT CONCAT_WS (',', '1st string', '2nd string');
+ ------------------------------------------ +
| CONCAT_WS (',', '1st string', '2nd string') |
+ ------------------------------------------ +
| 1-я строка, 2-я строка | 
+ ------------------------------------------ +
1 ряд в наборе (0,00 сек)

Пример функции MySQL CONCAT-WS () с предложением where

Следующая инструкция MySQL добавляет аргументы (т.е. aut_id, aut_name, country и home_city) с разделителем «,», если страной автора не является США.

Код:

SELECT CONCAT_WS(',',aut_id,aut_name,country,home_city) 
FROM author 
WHERE country<>'USA'; 

Пример таблицы: автор


Пример вывода:

 mysql> SELECT CONCAT_WS (',', aut_id, aut_name, страна, home_city) 
    -> ОТ автора 
    -> ГДЕ страна <> 'США';
+ ------------------------------------------------- - +
| CONCAT_WS (',', aut_id, aut_name, страна, home_city) |
+ ------------------------------------------------- - +
| AUT001, Уильям Нортон, Великобритания, Кембридж | 
| AUT002, Уильям Моэм, Канада, Торонто | 
| AUT003, Уильям Энтони, Великобритания, Лидс | 
| AUT004, SBSwaminathan, Индия, Бангалор | 
| AUT005, Томас Морган, Германия, Арнсберг | 
| AUT007, Пирс Гибсон, Великобритания, Лондон | 
| AUT009, маркиз де Эллис, Бразилия, Рио-де-Жанейро | 
| AUT011, John Betjeman Hunter, Австралия, Сидней | 
| AUT012, Эван Хайек, Канада, Ванкувер | 
| AUT013, E. Ховард, Австралия, Аделаида | 
| AUT014, CJ Wilde, Великобритания, Лондон | 
+ ------------------------------------------------- - +
11 рядов в наборе (0,00 сек)

PHP скрипт

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>example-concat_ws-function - php mysql examples | w3resource</title>
<meta name="description" content="example-concat_ws-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 authors id, name, country, home city:</h2>
<table class='table table-bordered'>
<tr>
<th>Author's id, name, country, home 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_WS(",",aut_id,aut_name,country,home_city) as output
FROM  author
WHERE country<>"USA"') as $row) {
echo "<tr>";
echo "<td>" . $row['output'] . "</td>";
echo "</tr>";
}
?>
</tbody></table>
</div>
</div>
</div>
</body>
</html>

Посмотреть пример в браузере

JSP скрипт

<%@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_ws-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_WS(',',aut_id,aut_name,country,home_city) as output FROM  author WHERE country<>'USA'";
rs = statement.executeQuery(Data);
%>
<TABLE border="1">
<tr width="10" bgcolor="#9979">
<td>Author's id, name, country, home city</td>
</tr>
<%
while (rs.next()) {
%>
<TR>
<TD><%=rs.getString("output")%></TD>
</TR>
<%   }    %>
</table>
<%
rs.close();
statement.close();
connection.close();
} catch (Exception ex) {
out.println("Cant connect to database.");
}
%>
</body>
</html>

Разница между MySQL GROUP_CONCAT () и CONCAT_WS ()

Функция GROUP_CONCAT () возвращает строку с объединенным ненулевым значением из группы.
Функция CONCAT_WS () используется для добавления двух или более строк с разделителем

Смотрите следующий пример:

 mysql> SELECT ИД пользователя, fname, lname FROM user_details;
+ ---------- + -------- + --------- +
| идентификатор пользователя | имя имя |
+ ---------- + -------- + --------- +
| scott123 | Скотт | Rayy |
| ferp6734 | Палаш | Гоша |
| diana094 | Диана | Лоренц |
| abcd123 | Джон | луч |
+ ---------- + -------- + --------- +
4 ряда в наборе (0,00 сек)
mysql> SELECT GROUP_CONCAT (CONCAT_WS ('', fname, lname)) FROM user_details ORDER BY ID пользователя ASC;
+ ------------------------------------------------ +
| GROUP_CONCAT (CONCAT_WS ('', fname, lname)) |
+ ------------------------------------------------ +
| Скотт Рэй, Палаш Гош, Диана Лоренц, Джон Рэй |
+ ------------------------------------------------ +
1 ряд в наборе (0,03 сек)

Здесь CONCAT_WS () вставляет пробел в качестве разделителя между fname и lname, а GROUP_CONCAT () возвращает результат в одной строке.

Все строковые функции

«MySQL

Предыдущая: CHARACTER_LENGTH
Далее: КОНКАТ

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code