我有一个包含4列id、user、text和date的表。
我正在尝试获取"user“包含许多userid中的一个的行。可以有一个到无限个用户id。
用户id的示例
"4, 5, 23""user“列的示例
"4, 12, 44"基本上,我正在尝试制作一个状态更新系统,只有用户的朋友才能看到状态更新,有点像facebook和twitter。
发布于 2013-04-10 23:09:35
您不应该有一个列来存储多个用户ID。制作一个表格并引用它,然后查找就会很简单。
发布于 2013-04-10 23:31:28
如果我正确理解了您的问题,您希望将其分解到多个表中。
一个包含id、userid、text和date的状态表。
一个包含id、用户名等的用户表(由您决定)。
一个包含id、userid、friendid的友好表。(对于友谊的两个条目,您可以使用friend1和friend2,但这意味着在每个查询中都要检查两个字段)。
最后一张表是基于需要友谊的两种方式!因此,facebook的约定与twitter相反,遵循但可能没有遵循,约定。
然后,您将显示来自您(作为已登录用户)的好友的用户的更新。
SELECT s.text,s.date,u.username,s.userid FROM status s INNER JOIN username u ON s.userid = u.id INNER JOIN FROM f ON f.friendid = s.userid WHERE f.userid = 'LOGGED IN USER ID‘ORDER BY s.date DESC LIMIT 10
将登录用户ID更改为当前登录用户的用户ID。这通常是使用会话变量设置的。
LIMIT 10将显示最新的10个状态更新!
然后显示文本和日期,以及带有链接到其个人资料的userid的用户名(如果适用)!
https://stackoverflow.com/questions/15929666
复制相似问题