php - 如何在两个不同的表中进行搜索?

标签 php mysql laravel union

这是我当前的查询:

$q = $request->q;
-- first table
$n_arr = news::where('title','like',$q)->orWhere('description','like',$q)->get();
-- second table
$p_arr = productions::where('title','like',$q)->orWhere('description','like',$q)->get();

如您所见,目前我通过两个不同的查询来做到这一点。但是现在我需要使用 ->paginate(),所以我也需要一个查询来分页所有结果。我需要像 union 子句这样的东西。

换句话说,我需要结合上面这两个查询的结果。

我如何在 Laravel 中做到这一点?

最佳答案

做到这一点的一种方法是 create pagination manually .

另一种方法是使用 skip()take()两个查询中的方法以获取当前页面的结果。

$n_arr = news::where('title','like',$q)->orWhere('description','like',$q)->->skip($page * $perPage)->take($perPage)get();
$p_arr = productions::where('title','like',$q)->orWhere('description','like',$q)->skip($page * $perPage)->take($perPage)->get();

关于php - 如何在两个不同的表中进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240521/

相关文章:

php - 从 4 个相同的 Web 服务器中的 1 个运行 Cron 作业,所有这些服务器都具有相同的作业

php - Laravel Blade 的 json 输出对象带有单引号?

php - 没有数据库的 Laravel 中的 JWT 身份验证

Javascript 和 PHP 扫描裸体

php - CakePHP:适当的 Controller 、模型和操作结构

php - 关闭我的 mySQL 连接

MySQL - 显示日期、时间加 5 分钟、价格

php - Select 语句中计数的平均值

php - 尝试通过时间戳访问关联数组项

laravel - 如何使用 "leftJoin"为 Laravel Eloquent ORM 中的列添加别名