我有一个包含4列id,用户,文本和日期的表。
我正在尝试获取“user”包含许多userid之一的行。那里可以有一个到无限用户ID。
用户ID的示例
"4, 5, 23"
“用户”列的示例
"4, 12, 44"
基本上我正在尝试创建一个状态更新系统,只有用户的朋友才能看到状态更新,有点像facebook和twitter。
答案 0 :(得分:5)
您不应该有一个列来存储多个用户ID。创建一个表并引用它然后查找将很简单。
答案 1 :(得分:1)
如果我理解你的问题,你想把它分成多个表。
包含id,userid,文本和日期的状态表。
具有ID,用户名等的用户表(由您决定)。
具有id,userid,friendid的友谊表。 (友谊的两个条目,你可以做friend1和friend2,但这意味着每个查询都要检查两个字段)。
最后一张桌子是基于两种方式友谊的需要!所以Facebook的约定与推特相反,但可能没有后续的约定。
然后,您将显示来自用户(与登录用户)有友谊的用户的更新。
SELECT s.text,s.date,u.username,s.userid FROM status s INNER JOIN username u ON s.userid = u.id INNER JOIN friendship f ON f.friendid = s.userid WHERE f.userid ='登录用户ID'按照s.date DESC LIMIT 10订购
将LOGGED IN USER ID更改为当前登录用户的用户ID。这通常使用会话变量设置。
LIMIT 10
将显示最新的10个状态更新!
然后显示文本和日期以及用户名链接到其个人资料的用户名(如果适用)!