SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 06.05.2020 20:52:05

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

group_concat c подзапросом

Здравствуйте. Подскажите, пожалуйста.
Делаю следующий запрос

select group_concat(stock) from pmd_offers  WHERE stock != ''


Получаю

3,4,5,3,5,9

Если делать так
select city from stock where id in (3,4,5,3,5,9)


То выводится несколько результатов

А если так

select city from stock where id in (select group_concat(stock) from pmd_offers  WHERE stock != '')


То только один.

В чем ошибка? Как ее исправит?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#2 06.05.2020 21:44:22

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

Re: group_concat c подзапросом

Нет ошибки.
group_concat возвращает строку, а вам нужен набор значений.

select city from stock where id in (select group_concat(stock) from pmd_offers  WHERE stock != '');

эквивалентно
select city from stock where id in ('3,4,5,3,5,9');


Если нужно именно в 1 запрос, то find_in_set, но тогда не будут использоваться индексы.

Неактивен

 

#3 06.05.2020 22:12:47

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: group_concat c подзапросом

Ошибся возможно.
мне нужно вот так

select * from stock where id in (3,4,5,3,5,9);


и тогда на выходе у меня будет так

https://yadi.sk/i/gnWyvNgapZGY1g

А у меня на выходе получается так

https://yadi.sk/i/OTZ3mPTXU7sSow


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#4 06.05.2020 22:28:40

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

Re: group_concat c подзапросом

Так делайте 2 запроса:
1.

select group_concat(stock) from pmd_offers  WHERE stock != ''

полученный результат подставляете в in
2.
select * from stock where id in (3,4,5,3,5,9);

Неактивен

 

#5 06.05.2020 22:36:57

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: group_concat c подзапросом

Да я думал, может одним как-то можно


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

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