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%'
非常感谢,
冰
来自文档:
GROUP_CONCAT(expr):
此函数返回一个字符串结果,其中包含来自组的连接非NULL值.
你得到一个包含的字符串'1,2'
.这不是你可以提供给IN子句的东西,因为它是单个值,而不是两个.
只是在没有它的情况下这样做它GROUP_CONCAT
会起作用:
gi.groupid IN ( SELECT gf.groupid FROM ... )