MySQL 内爆子查询结果并在 WHERE IN 中使用
MySQL implode subquery result and use in WHERE IN
SELECT name FROM users WHERE id
IN ((SELECT manager FROM users_info WHERE id_user = 1))
此处 WHERE IN ()
中的子查询是 return 以这种格式计算一列和一行,例如12,13
(如果 ID 是内爆数组)
但整个 SELECT
return 只是第一个 name
和 id
= 12
。它应该 return 2 行。我尝试在子查询上使用 CONCAT()
函数,但仍然只有一个结果。
使用FIND_IN_SET ()
SELECT `name` FROM `users` WHERE FIND_IN_SET (`id`,( SELECT `manager` FROM `users_info` WHERE `id_user`='1' )) >0;
SELECT name FROM users WHERE id
IN ((SELECT manager FROM users_info WHERE id_user = 1))
此处 WHERE IN ()
中的子查询是 return 以这种格式计算一列和一行,例如12,13
(如果 ID 是内爆数组)
但整个 SELECT
return 只是第一个 name
和 id
= 12
。它应该 return 2 行。我尝试在子查询上使用 CONCAT()
函数,但仍然只有一个结果。
使用FIND_IN_SET ()
SELECT `name` FROM `users` WHERE FIND_IN_SET (`id`,( SELECT `manager` FROM `users_info` WHERE `id_user`='1' )) >0;