我想用这个逻辑创建一个6行的限制:
所有"真实"用户必须是不同的(ID> 0)
id | friends_list | name 1 2,3,5 John 2 1,7,9 Michael 3 1,2,5 Tom 4 3,2,6 Larry
预期结果必须类似于(for a given user e.g. id=1)
:
2, 3, 4, 0, 0, 0
答案 0 :(得分:1)
您应该以不同方式存储数据,并使用连接从多个表中选择数据。根据您的使用情况,还有其他方法可以考虑存储数据。
PEOPLE TABLE
id | name
1 | John
2 | Michael
3 | Tom
4 | Larry
PEOPLE_FRIENDS TABLE
id | person_id | friend_id
1 | 1 | 2 //In this case John is friends with Michael
2 | 3 | 1 //In this case Tom is friends with John.
以下选择会为John的朋友提供id。
SELECT * FROM PEOPLE `P` INNER JOIN PEOPLE_FRIENDS `PF` ON P.id = P.person_id WHERE P.id = 1
此外,还有一百万种不同的方式来编写查询,但这会让你指出我认为正确的方向。