2015-05-29 70 views
0
SELECT name FROM users WHERE id 
    IN ((SELECT manager FROM users_info WHERE id_user = 1)) 

这里WHERE IN()的子查询返回此格式的一列和行,例如, 12,13(内爆数组,如果ID)的MySQL内爆子查询结果和在哪里使用

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

+0

你能描述表用户和users_info? – teoreda

+0

是管理器包含像'12,13'这样的数据的字符串格式的逗号分隔的数据,然后使用Find_in_Set? – Anil

回答

0

使用FIND_IN_SET()

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

我是4秒后,然后你在发表评论关于Find_in_Set() – Anil

+0

谢谢。它正在工作。 :) – Pepet

+0

太棒了! @Pepet你会接受我的答案吗? – AVM