假设我有一个 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,它只会从 table.subscribers WHERE id=1
SELECT "user2,user3"
我知道我可以在用 PHP 选择全部后限制它,但我不想遇到性能问题,如果每列中有数百万个用户名...
此外,这是设置订阅/关注
系统的最佳结构。还是有更好的方法?
最佳答案
您在同一字段中存储多个值。这很糟糕!
您需要第二个表来表示订阅 - 它会有一个列 userid
和 subscriberuserid
(或类似的东西)。
对于用户拥有的每个订阅者,此表中都会有一条记录,其中包含该用户的用户 ID(及其订阅者的用户 ID)。
然后,您可以限制自己的内心满足:
SELECT subscribers.subscriberuserid
FROM subscribers
WHERE userid = 1
LIMIT 2
关于mysql - 从逗号分隔的字段中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517379/