MySQL 内爆子查询结果并在 WHERE IN 中使用

标签 mysql subquery where-clause implode

SELECT name FROM users WHERE id 
  IN ((SELECT manager FROM users_info WHERE id_user = 1))

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

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

最佳答案

使用FIND_IN_SET()

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

关于MySQL 内爆子查询结果并在 WHERE IN 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523812/

相关文章:

mysql - 获取子查询 where 子句 id 与主查询中的 id 匹配

php - 选择特定行的 Mysql 数据

MySQL 条件连接

Python MySQLdb 改变字符串编码

mysql - 如何使 MySQL MyISAM "strict"?

mysql - 使用来自 1 个表的 1 列的变量的三个 MySQL 查询需要解析到临时表中

mysql - Sql 查询分组和限制

mysql - 如何从 MySQL 中的选择查询中获取列名?

MySQL - 返回值=3的行号

SQL - JOIN BETWEEN 与 WHERE BETWEEN