考虑表格,
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
此处privilege 列是由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
谢谢
最佳答案
首先,规范化数据库。新建表user_privilege,与users表建立外键关系。
但是,在当前情况下,您可以尝试以下查询。
select * from users WHERE id = 2 OR
FIND_IN_SET(id,(select privilege from users where id = 2));
关于mysql - 获取同一表的逗号分隔字符串中所有 ID 的详细信息,MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964224/