Разделить строку MYSQL из GROUP_CONCAT на (массив, например, выражение, список), который может понять IN ()

Этот вопрос следует из набора результатов соединения MYSQL, удаленных во время IN () в предложении where?

Итак, краткая версия вопроса. Как превратить строку, возвращаемую GROUP_CONCAT, в список выражений, разделенных запятыми, который IN () будет рассматривать как список из нескольких элементов, которые нужно перебрать?

NB. В документации MySQL «(запятые, разделенные, списки)», используемые IN (), называются «списками выражений», и что интересно, страницы в IN () кажутся более или менее единственными страницами в документы MySQL, чтобы всегда ссылаться на списки выражений. Поэтому я не уверен, будут ли здесь полезны функции, предназначенные для создания массивов или временных таблиц.


Длинная версия вопроса на основе примеров: Из 2-табличной БД, например:

SELECT id, name, GROUP_CONCAT(tag_id) FROM person INNER JOIN tag ON person.id = tag.person_id GROUP BY person.id;
+----+------+----------------------+
| id | name | GROUP_CONCAT(tag_id) |
+----+------+----------------------+
|  1 | Bob  | 1,2                  |
|  2 | Jill | 2,3                  |
+----+------+----------------------+

Как я могу это изменить, поскольку, поскольку он использует строку, обрабатывается как логический эквивалент (1 = X) AND (2 = X) ...

SELECT name, GROUP_CONCAT(tag.tag_id) FROM person LEFT JOIN tag ON person.id = tag.person_id 
GROUP BY person.id HAVING ( ( 1 IN (GROUP_CONCAT(tag.tag_id) ) ) AND ( 2 IN (GROUP_CONCAT(tag.tag_id) ) ) );
Empty set (0.01 sec)

... во что-то, где результат GROUP_CONCAT обрабатывается как список, так что для Боба он будет эквивалентен: com / 2009/11/09 / facebook-connect-integration-with-spring-security / не годится. На самом деле я поставлю минус каждому, кто опубликует это в качестве ответа. Я провожу с этой вещью 2 часа, и у меня не получается заставить ее работать. Я закончил немного смелее и почувствовал себя глупее, чем обычно :-(

Мне бы очень хотелось увидеть решение OAuth 2.0 для подключения к facebook. И ограничить использование Facebook JavaScript API до абсолютного минимума .

Следующая ссылка показывает, что мне нужно: http://www.richardnichols.net/2010/06/implementing-facebook-oauth-2-0-authentication-in-java/

Пожалуйста, отправьте только код в этот вопрос. Я уже получил все советы, с которыми могу справиться.

ОБНОВЛЕНИЕ

У меня есть решение для сервлета, и я опубликовал здесь ответ, если кому-то интересно: Пример подключения Facebook в JSP (tomcat)

8
задан Community 23 May 2017 в 12:24
поделиться