假设我有一个subscribers表,每个用户都有一行,如下所示。

id name    subscribers
1  user1   user2,user3,user4
2  user2   user4,user5,user3
3  user3   user1,user6,user2    etc...

我想做的是,运行这样的select语句..
 SELECT subscribers from table where id = '1'

…然后,限制给我看的订户数量
也就是说,如果我把它限制在2,它只会从SELECT "user2,user3"开始table.subscribers WHERE id=1
我知道我可以在用php选择所有选项后限制它,但我不想遇到性能问题,如果每个列中有数百万个用户名…
另外,这是建立subscibe/follow系统的最佳结构吗?还是有更好的办法?

最佳答案

您正在同一字段中存储多个值。真糟糕!
您需要另一个表来表示订阅-它将有一列useridsubscriberuserid(或类似的内容)。
对于用户拥有的每个订阅者,此表中都会有一条记录,其中包含该用户的userid(及其订阅者的userid)。
然后,你可以限制你的心的内容:

SELECT subscribers.subscriberuserid
FROM subscribers
WHERE userid = 1
LIMIT 2

09-16 18:37