SQL查询返回从数组中选择作者的数据[重复]

Posted

技术标签:

【中文标题】SQL查询返回从数组中选择作者的数据[重复]【英文标题】:SQL query return data where author is selected from array [duplicate] 【发布时间】:2020-12-15 14:10:52 【问题描述】:

如何使用一个 SQL 查询返回来自两个或多个不同作者的帖子? Authors 数组是从数据库中接收的,每个用户都不同(这取决于您关注的作者)。

我返回带有作者 ID 的 $array 变量。

$array = array(15, 12, 18); //this array is returned from database and is always different
$posts = DB::table('posts') -> where('author', $array]) -> orderBy('date', 'DESC') -> get();

foreach($posts as $post) 
  echo "Posted by " . $post->author;

如何返回作者 15、12、18 使用单行发布的所有帖子,或者仅返回单 sql 查询并按日期排序?

我尝试为每个创建者和合并数组创建不同的 sql 选择,但是很难订购

【问题讨论】:

【参考方案1】:

使用whereIn,它是专门为您的目的而构建的:

$posts = DB::table('posts') 
    -> whereIn('author', $array) 
    -> orderBy('date', 'DESC') 
    -> get();

【讨论】:

【参考方案2】:

您需要使用whereIn 而不是where

->whereIn('author', $array)

现在您的查询如下所示:

$posts = DB::table('posts')->whereIn('author', $array)-> orderBy('date', 'DESC')->get();

【讨论】:

以上是关于SQL查询返回从数组中选择作者的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法从从 sql 数据库读取的 javascript 函数中获取返回数组 [重复]

基于数组的SQL查询[重复]

SQL:如何从重复行中选择第一条记录?

从 PL/SQL 中的过程返回值数组

解析 SQL Server 查询而不针对数据库连接执行查询 [重复]

sql中如何使一列中的多个重复数据只显示第一条