+-

在IN()内部使用的查询返回:1,2.然而,整个查询返回0行,这是不可能的,因为它们存在.我在这做错了什么?
SELECT DISTINCT
li.auto_id
FROM
links AS li
JOIN group_data AS gi ON
li.auto_id = gi.autoid AND li.user_id = gi.userid
WHERE
gi.groupid IN
(
SELECT
CAST( GROUP_CONCAT( gf.groupid ) AS CHAR )
FROM
group_followers AS gf
WHERE
gf.userid_ext = '1'
GROUP BY
gf.userid_ext
)
AND li.keyword LIKE '%shiba%'
非常感谢,
冰
最佳答案
从 the docs开始:
GROUP_CONCAT(expr):
This function returns a string result with the concatenated non-NULL values from a group.
你得到一个包含’1,2’的字符串.这不是你可以提供给IN子句的东西,因为它是单个值,而不是两个.
只是在没有GROUP_CONCAT的情况下这样做它会起作用:
gi.groupid IN
(
SELECT
gf.groupid
FROM
...
)
点击查看更多相关文章
转载注明原文:MySQL – 其中IN与GROUP_CONCAT一起使用 - 乐贴网