获取相同表格MYSQL的逗号分隔字符串中所有ID的详细信息

时间:2014-04-09 13:34:20

标签: mysql

考虑一下表,

id   username    co_manager    privilege
1    user_1      0             NULL
2    user_2      1             4,5
3    user_3      1             6
4    user_4      0             NULL
5    user_5      0             NULL
6    user_6      0             NULL

此处权限列是由 co_manager 管理的用户ID。如果输入的用户ID为2,那么我应该得到这样的输出,

id   username    co_manager    privilege
2    user_2      1             4,5
4    user_4      0             NULL
5    user_5      0             NULL

为此,我使用了这样的查询,

select * from users WHERE id = 2 OR FIND_IN_SET(id,privilege);

但未获得所需的输出。

我在这里尝试过这个示例http://sqlfiddle.com/#!2/3c8c35

由于

1 个答案:

答案 0 :(得分:1)

首先,规范化DB。创建一个新表user_privilege并与users表具有外键关系。

但是,在当前情况下,您可以尝试以下查询。

select * from users WHERE id = 2 OR 
FIND_IN_SET(id,(select privilege from users where id = 2));