考虑一下表,
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
由于
答案 0 :(得分:1)
首先,规范化DB。创建一个新表user_privilege并与users表具有外键关系。
但是,在当前情况下,您可以尝试以下查询。
select * from users WHERE id = 2 OR
FIND_IN_SET(id,(select privilege from users where id = 2));