PHP: извлекать разделенные запятыми значения из MySQL - PullRequest
0 голосов
/ 06 июня 2018

моя таблица:

id |id_fruit |name

2|1|orange| 3|1|apple| 23|1|banana| 34|1|ananas| 35|3|kiwi|

Я хочу извлечь все имена, где id_fruit = 1, и напечатать их в поле формы в качестве значений следующим образом: апельсин, яблоко, банан, ананас

Я пытался select concat_ws(', ', name) from fruits where id_fruit=1, но не работает.Как я могу это сделать?спасибо!

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

User Group_Contact функция в MySQL

Выберите group_concat (имя) из моей таблицы, где fruit_id = 1

0 голосов
/ 06 июня 2018

Я думаю, вы неправильно поняли использование concat_ws().
Документация MySQL об этой функции объясняет, что вы должны указывать каждый аргумент для объединения сразу.
Таким образом, ваше заявление sql не имеет никакого эффекта.

Как говорит Раджа, вы можете использовать свой внутренний язык программирования (например, php, python или любой другой, который вы используете).
Вы просто select без concat_ws и выполняете объединение навнутренняя сторона.

Кажется, concat_ws() основное использование - объединение двух полей из одной и той же записи в mysql, таких как имя и фамилия (поля), например, для одного и того же пользователя (запись).

0 голосов
/ 06 июня 2018

Просто через PHP, вы можете сделать это!Пока вы можете зациклить все имена следующим образом.

PHP

$in = 0;    
$fruits = "";
    while($row = mysqli_fetch_assoc($exeutedquery)){
if($i == 0){
$fruits += $row['name'];
$i++;
}else{
$fruits += ",".$row['name'];
}
}

И ДЛЯ SQL

SELECT STUFF
(
     (select ',' + name
      from
      fruits
      where 
      ID in (1,2,3)
      FOR XML PATH('')
      ),1,1,''
)

BAM!

...