GROUP_CONCAT с предложением WHERE IN

0

Я пытаюсь сгруппировать несколько столбцов вместе, которые имеют определенные соответствующие строки.

SELECT GROUP_CONCAT('users'.'id') 
FROM 'users' 
WHERE 'users'.'name'
IN ('john','doe','foo','bar');

Я не получаю сообщение об ошибке, только результат равен NULL, хотя в таблице есть столбцы со всеми этими именами.

Как структурировать мой запрос для достижения ожидаемого результата?

  • 0
    Это выглядит хорошо для меня. Что такое полное сообщение об ошибке?
  • 0
    Мои извинения, не было ошибки. Просто результат в таблице равен NULL, но в таблице есть столбцы со всеми этими name .
Показать ещё 9 комментариев
Теги:
group-concat

1 ответ

0
Лучший ответ

В: Как структурировать мой запрос для достижения ожидаемого результата?

A: Резервное копирование в предыдущий запрос, тот, который работал, и возвращение ожидаемых результатов. И затем выясните, почему изменение, внесенное вами в этот запрос, вызвало непреднамеренное поведение/неожиданные результаты.

Например, вероятно, вы начали писать запрос следующим образом:

SELECT u.id
     , u.name 
  FROM users u
 ORDER
    BY u.name 

И вы запустили это, чтобы проверить его, и убедитесь, что он вернул ожидаемые результаты. Является ли id не-NULL. Является ли колонка name заполненной?

Затем вы добавили WHERE, чтобы узнать, можете ли вы получить строки с столбцом name содержащим "john".

SELECT u.id
     , u.name 
  FROM users u
 WHERE u.name = 'john'
 ORDER
    BY u.name

Получили ли это ожидаемые результаты при запуске? Если нет, нам нужно выяснить, почему нет. Что отличается от этого запроса, чем тот, который работал.

Как далеко мы дошли до этого поэтапного уточнения, написав запрос, прежде чем попали в запрос, возвращающий неожиданные результаты? Покажи нам это.

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


При отсутствии спецификации невозможно сделать какие-либо рекомендации. Образцы данных и вывод примеров будут иметь большое значение для разъяснения требований. Вы даже можете задуматься над тем, как настроить пример SQLFiddle.

Если вы попросите помощника по работе за работу, вам нужно показать какую-то работу, как далеко вы добрались. Вместо того, чтобы просто "здесь запрос, который не работает".

https://ericlippert.com/2014/03/05/how-to-debug-small-programs/


В противном случае мы просто догадываемся о том, какой результат вы ожидаете вернуть.

Может быть, ответ так же просто, как обертывание выражения в IFNULL

SELECT IFNULL( GROUP_CONCAT(foo) ,'')  AS bar
     , 

Но мы, скорее всего, лаем, догадываемся о совершенно неправильном дереве.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню