SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.08.2011 18:27:49

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

SEPARATOR+IF в GROUP_CONCAT

Всем привет!
Очень хочется использовать одновременно в GROUP_CONCAT и IF и SEPARATOR, но чета никак не получается smile

Что-то вроде:

SELECT GROUP_CONCAT(IF(`call_date` != '0000-00-00', DATE_FORMAT(`call_date`, '%d.%m.%Y'), '') SEPARATOR ', ') AS `call_date`, `folder`
FROM `ads`
GROUP BY `folder`


Но в таком случает если даты пустые, запятые с пробелом все равно ставятся. Нужно чтобы сепараторы не ставились тоже если значение IF не подходит. Кто знает, возможно ли такое?

Неактивен

 

#2 05.08.2011 07:11:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SEPARATOR+IF в GROUP_CONCAT

Вынести условие if в часть where.

Неактивен

 

#3 05.08.2011 10:37:07

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: SEPARATOR+IF в GROUP_CONCAT

vasya написал:

Вынести условие if в часть where.

не получится. зря я все-таки сократил свой запрос. там помимо этих двух полей выбираются еще поля. и эти поля должны выбираться в независимости от того есть ли у них дата.

Неактивен

 

#4 05.08.2011 13:00:47

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SEPARATOR+IF в GROUP_CONCAT

Ну тогда убирайте сепаратор и переносите запятую в условие if, если не критично, что строка будет заканчиваться запятой.

Неактивен

 

#5 05.08.2011 16:08:51

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: SEPARATOR+IF в GROUP_CONCAT

vasya написал:

Ну тогда убирайте сепаратор и переносите запятую в условие if, если не критично, что строка будет заканчиваться запятой.

в таком случае строка все равно будет нуждаться в обработке php. просто хотелось получать на выходе готовую строку с заданным сепаратором. если не задавать все нормально. но хотелось бы чтобы после запятых были пробелы.

Неактивен

 

#6 05.08.2011 16:53:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SEPARATOR+IF в GROUP_CONCAT

Тогда никак.

Неактивен

 

#7 08.08.2011 18:37:06

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: SEPARATOR+IF в GROUP_CONCAT

ладно, буду php тогда расставлять  smile

Неактивен

 

#8 19.08.2011 14:31:18

vaspet
Завсегдатай
Зарегистрирован: 11.03.2009
Сообщений: 83

Re: SEPARATOR+IF в GROUP_CONCAT


SELECT SUBSTR(GROUP_CONCAT(IF(`call_date` != '0000-00-00', DATE_FORMAT(`call_date`, ', %d.%m.%Y'), '') SEPARATOR ''),2) AS `call_date`, `folder`
FROM `ads`
GROUP BY `folder`
 


Вроде так прокатит, попробуйте.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson