MySQL选择等于多个值的位置

fra*_*ank 23 mysql select

我有两个数据库,我存储谁跟踪谁和另一个存储用户发布的帖子.

我想从以下数据库中选择用户正在关注的所有人,并回显用户所关注的用户名,并查询posts数据库以查找该用户的帖子.

我的问题是,如果用户关注多个用户,我回应了该用户关注的人的用户ID,我得到了44443344330

当我用commans分隔每个id时,我得到:

44,44,33,44,33,0, 
Run Code Online (Sandbox Code Playgroud)

所以让我们给出一个变量$user_ids;

$user_ids = "44,44,33,44,33,0, ";
Run Code Online (Sandbox Code Playgroud)

查询:

$get_posts = mysql_query("SELECT * FROM posts WHERE userid = '$user_ids'");
Run Code Online (Sandbox Code Playgroud)

但它所做的就是显示第一个用户ID的记录,44.

如何检索所有用户的所有记录?

Ker*_* SB 31

查询应该是:

SELECT * FROM posts WHERE userid IN (44,44,33,44,33,0)
Run Code Online (Sandbox Code Playgroud)

但是,您可能必须重新考虑数据模型并确保它已标准化,以便您可以直接在数据库中表达此结构,而不会回显到以逗号分隔的字符串.

为什么你有两个数据库?你的意思是两张桌子吗?


jam*_*ond 22

也许你想用 IN

SELECT * FROM posts WHERE userid IN ($user_ids)
Run Code Online (Sandbox Code Playgroud)

  • 如果id的数据类型设置为Integers,则不起作用.它必须是($ user_ids)not('$ user_ids') (5认同)