【问题标题】:MySQL implode subquery result and use in WHERE INMySQL 内爆子查询结果并在 WHERE IN 中使用
【发布时间】:2015-05-29 07:36:21
【问题描述】:
SELECT name FROM users WHERE id 
  IN ((SELECT manager FROM users_info WHERE id_user = 1))

WHERE IN () 中的子查询以这种格式返回一列和一行,例如12,13(如果是 ID,则为内爆数组)

但是整个SELECT 只返回第一个nameid = 12。它应该返回 2 行。我尝试在子查询上使用CONCAT() 函数,但仍然只有一个结果。

【问题讨论】:

  • 你能描述一下表 users 和 users_info 吗?
  • 是管理器包含像'12,13'这样的数据,一个逗号分隔的字符串格式的ID,然后使用Find_in_Set?

标签: mysql subquery where implode


【解决方案1】:

使用FIND_IN_SET ()

 SELECT `name` FROM `users` WHERE FIND_IN_SET (`id`,( SELECT `manager` FROM `users_info` WHERE `id_user`='1' )) >0;

【讨论】:

  • 我在发表关于 Find_in_Set() 的评论时比你落后 4 秒
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多