+-
MySQL – 其中IN与GROUP_CONCAT一起使用
在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一起使用 - 乐贴网