CHill60
Есть несколько вполне ясных примеров!
Посмотрите на эту ссылку для GROUP_CONCAT
: Функция MySQL GROUP_CONCAT () - w3resource[^Ключ к разгадке находится в названии, это позволит сгруппировать результаты.
Еще один очень простой пример - если у вас есть таблица
create table test
(
stuName varchar(20),
score int
);
insert into test(stuName, score) values ('John', 1);
insert into test(stuName, score) values ('Joan', 2);
insert into test(stuName, score) values ('Jeff', 3);
insert into test(stuName, score) values ('John', 4);
insert into test(stuName, score) values ('Joan', 5);
insert into test(stuName, score) values ('Jeff', 6);
Затем
GROUP_CONCAT
SELECT stuName,
GROUP_CONCAT(TO_CHAR(score))
FROM test
GROUP BY stuName;
даст результаты
John 1,4
Joan 2,5
Jeff 3,6
Эта ссылка предназначена для
CONCAT_WS
-
Функция MySQL CONCAT_WS () - w3resource[
^]. Еще один простой пример
SELECT stuName, CONCAT_WS(TO_CHAR(score))
FROM test
дал бы точно такие же результаты, как
SELECT stuName, score
но
SELECT stuName, score, CONCAT_WS(',', stuName, TO_CHAR(score)) FROM test
дать бы
John 1 John,1
Joan 2 Joan,2 etc
Обратите внимание, что
CONCAT_WS
вставляет разделитель между каждым элементом. Он игнорирует нули, поэтому, если все элементы равны нулю, он вернет пустую строку.
А вот ссылка для
CONCAT
-
Функция MySQL CONCAT () - w3resource[
^]
CONCAT делает то же самое, что и CONCAT_WS, но не вставляет разделитель. Кроме того, если все элементы равны NULL, то функция вернет NULL, а не пустую строку.
"Условия" использования каждого из них полностью зависят от того, каких результатов вы пытаетесь достичь!