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

Rob*_* Dc 11 php mysql sql

我想知道这在sql中几乎是可能的(使用php作为服务器端),其中你有一个值数组(数字),你尝试根据该数组中的值检索数据.

我有一个SQL表:

posts(
    id int(11) primary key,
    posts varchar(140),
    user_id int(11) foreign key
);
Run Code Online (Sandbox Code Playgroud)

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

$query="SELECT * FROM posts WHERE user_id=(**Array of select user_id's**)";
Run Code Online (Sandbox Code Playgroud)

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

我实际上正在尝试实现我们关注的人员帖子的推特模型.

Hik*_*ndo 13

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

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

  • 请注意,已针对SQL注入清理了数组值. (4认同)

liq*_*car 13

是的,这很容易实现.你需要看看MySQL的IN功能

你的查询会是这样的

SELECT * FROM posts WHERE user_id IN (1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

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