如何在单个表中获得基于逗号分隔的id的用户名


how to get user name based on id separated by comma in single table

user_id   user_name        user_friend_list
1         dharmendra       2,3,4,5,6,7
2         jitendra         1,3,4,5,6,7
3         xyz              1,2,6,7 
4         pqr              1,3,4 

现在我想提取user_id &基于user_friend_list id的用户名6即它将返回1,2,3 user_id &用户名dharmendra jitendra和xyz.

我只是使用PHP的分裂功能,但它是如此复杂,请给我提供快捷方法

谢谢,关于

您可以使用FIND_IN_SET()

select user_id, user_name
from your_table
where find_in_set(6, user_friend_list) > 0

但它实际上会更好地改变你的表设计。永远不要在一列中存储多个值!

首先表没有规范化,这就是问题存在的原因你必须像这样或更好地打碎这张桌子

表1


user_id
user_name

表2


user_id
friend_id

表2将有一些冗余数据,但是可以通过添加第三个表作为table1和table2之间的映射来删除。

现在您可以使用以下查询来获取结果

select user_id,user_name from table1 as a join table2 as b on a.user_id=b

"SELECT user_id,username from your table WHERE user_id IN (2,3,4,5,6,7)";