使用 WHERE 子句检查一个 SQL 查询内的数组中的值

2022-08-30 17:35:05

我想知道这在sql(使用php作为服务器端)中是否切实可行,其中您有一个值(数字)数组,并且您尝试根据该数组中的值检索数据。

我有一个 sql 表:

posts(
    id int(11) primary key,
    posts varchar(140),
    user_id int(11) foreign key
);

我现在写一个查询来检索“帖子”:

$query="SELECT * FROM posts WHERE user_id=(**Array of select user_id's**)";

是否有任何sql内置函数来检查数组中的值?或者我应该使用PHP来做到这一点?

我实际上正在尝试实现twitter模型,以显示我们关注的人的帖子。


答案 1

是的,这很容易实现。你需要看看MySQL的IN函数

您的查询将类似于

SELECT * FROM posts WHERE user_id IN (1,2,3,4,5,6)

您可以使用 implode() 在 PHP 中的括号之间构建位


答案 2

SQL 无法解析 PHP 数组。试试这个:

$query="SELECT * FROM posts WHERE user_id IN ({implode(',', $userIDarray)})";

推荐