Этот вопрос следует из набора результатов соединения 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 часа, и у меня не получается заставить ее работать. Я закончил немного смелее и почувствовал себя глупее, чем обычно :-(
Следующая ссылка показывает, что мне нужно: http://www.richardnichols.net/2010/06/implementing-facebook-oauth-2-0-authentication-in-java/
Пожалуйста, отправьте только код в этот вопрос. Я уже получил все советы, с которыми могу справиться.
У меня есть решение для сервлета, и я опубликовал здесь ответ, если кому-то интересно: Пример подключения Facebook в JSP (tomcat)