我正在网站上建立以下系统。例如,一个用户关注500个人,当该用户转到主页时,它将显示从那500个人发布的消息。我将进行如下查询:
SELECT UserComments FROM comments_table
WHERE UserName = user1 OR user2 OR user3(...)
ORDER BY PostDate DESC.
问题是,我想从后面获取用户的注释,并且想用
or
运算符获取它们,但是我必须在用户名之间包含很多or
运算符。添加大量or
运算符是一种好习惯吗?我该怎么办?我正在使用MYSQL。
最佳答案
您最好将这些关系存储在表中,然后按每个用户加入表中。
因此,您有一个带ID的User表。带有LoggedInUserID和FollowedUserID的关注表。然后通过下表加入以获得评论。为LoggedInUser所关注的每个用户在Follow中插入1条记录。这样,您可以跟踪用户之间的关系并充分利用这些表上的索引。
SELECT comments.UserComments FROM Following
INNER JOIN comments on comments.UserID = Following.FollowedUserID
WHERE Following.LoggedInUserID = UserID;
用户
UserID Field1 Field2
1 "Stuff" "OtherStuff"
2 "More" "Blah"
3 "And" "Blerg"
以下
LoggedInUser FollowedUserID
1 2
1 3
2 1
3 2
关于mysql - SQL-包括很多OR运算符(例如1000或更多)在我的网站上建立跟踪系统是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32280244/