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的splite功能但它是如此复杂请提供我很好的快捷方法
谢谢&问候
答案 0 :(得分:3)
您可以使用FIND_IN_SET()
select user_id, user_name
from your_table
where find_in_set(6, user_friend_list) > 0
但改变你的桌面设计实际上会更好。永远不要在一列中存储多个值!
答案 1 :(得分:0)
表格首先没有规范化问题存在的原因 你必须像这样或更好地打破这个表:)
表1 USER_ID表2
USER_ID
friend_id
表2将有一些冗余数据,但可以通过添加第三个表作为table1和table2之间的映射来删除
现在您可以使用以下查询来获取结果
从table1中选择user_id,user_name作为连接table2,作为a.user_id = b.user_id上的b,其中b.friend_id = 6;
答案 2 :(得分:-1)
“SELECT user_id,表格中的用户名WHERE user_id IN(2,3,4,5,6,7)”;