Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка со значением.
Форумы портала PHP.SU » » Вопросы новичков » Выборка со значением.

Страниц (1): [1]
 

1. SofiaKit - 10 Июля, 2013 - 23:28:59 - перейти к сообщению
Подскажите пожалуйста, как сделать правильно выборку:
В бд данные хранятся так:

date | name
2013-03-07 | Полиглот
2013-03-08 | Полиглот
2013-02-01 | Скайрим
2013-02-04 | Полиглот

Мне надо вывести помесячно все имена, т.е. в каждом месяце какие имена использовались, но чтоб не повторялись... выглядеть должно так:
Скайрим, Полиглот
Польглот

Подскажите как правильно поставить условия выборки, плз.
2. LIME - 10 Июля, 2013 - 23:42:58 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT GROUP_CONCAT(DISTINCT name SEPARATOR ',') FROM tbl GROUP BY MONTH(date)

(Добавление)
можно добавить порядок
GROUP_CONCAT(DISTINCT name ORDER BY name SEPARATOR ',')
3. Мелкий - 11 Июля, 2013 - 09:32:57 - перейти к сообщению
Однако если результирующая строка получается длинная - она будет обрезана до group_concat_max_len. Дефолт - всего 1024 символа.
Возможно, удобнее будет вывести
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT date_format(date, '%Y%m'), name FROM tlb

И перегруппировать на стороне PHP в двумерный массив.

 

Powered by ExBB FM 1.0 RC1