2013-09-12 4 views
0

Если у меня есть таблица, в которой перечислены имена и возрасты, я могу запустить один запрос, который даст мне все имена людей определенного возраста.Получение нескольких значений в одном запросе MySQL

например.

name  age 
----------|------- 
alice  20 
bob  21 
chris  20 
dave  23 
eric  26 
fred  29 
greg  20 

Я хочу, чтобы мой запрос возвращает список, разделенных запятыми, из всех людей, которые в возрасте 20.

например

select (concat(name,',')) from people where age='20' 

И это выводит:

alice,chris,greg 

Очевидно, что я мог бы просто сделать:

select name from people where age='20' 

А затем цикл по результатам в PHP, но я пытаюсь сделать все это в запрос

+5

'GROUP_CONCAT()' – zerkms

ответ

2
select GROUP_CONCAT(name) AS name from people where age='20' 
+1

Большое спасибо, это идеальный – Chris

+0

приветствуется .... !!!! –

+0

Отлично, спасибо – Chris

-1

Попробуйте это:

SELECT name 
FROM people 
WHERE age='20' 
INTO OUTFILE '/tmp/name.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
+0

интересный подход - не уверен, что он работает - но неполный: как вернуть файл в PHP? (в любом случае - я думаю, что принятый ответ намного проще) – Alex

Смежные вопросы