当前位置:  开发笔记 > 编程语言 > 正文

MySQL - 其中IN与GROUP_CONCAT一起使用

如何解决《MySQL-其中IN与GROUP_CONCAT一起使用》经验,为你挑选了1个好方法。

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%'

非常感谢,



1> Tomalak..:

来自文档:

GROUP_CONCAT(expr):
此函数返回一个字符串结果,其中包含来自组的连接非NULL值.

你得到一个包含的字符串'1,2'.这不是你可以提供给IN子句的东西,因为它是单个值,而不是两个.

只是在没有它的情况下这样做它GROUP_CONCAT会起作用:

gi.groupid IN 
(
  SELECT 
    gf.groupid
  FROM 
    ...
)

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有