php - Laravel/Lumen 中两列之间的 SQL

标签 php laravel laravel-5

以下是 Laravel 文档的摘录:

The whereBetween method verifies that a column's value is between two values:

$users = DB::table('users')->whereBetween('votes', [1, 100])->get();

但是如果我想知道某个值是否介于我的数据库中的两列之间怎么办?

这是我的原始 SQL:

SELECT a.*, b.name FROM restaurants a, restaurant_class b
WHERE a.restaurant_class_id = b.id
AND '$d' = CURRENT_DATE
AND '$t' BETWEEN a.saturday_ot AND a.saturday_ct
ORDER BY id DESC 

saturday_otsaturday_ct 是我表中的 TIME 列,$t 是时间变量。所以我想检查时间是否介于两列的时间之间。

最佳答案

除了适用于两列的 whereBetween 方法之外,别无选择。但是,您可以通过以下两种方式之一执行此操作:

1.whereRaw 与绑定(bind)一起使用,您可以在其中使用原始条件和变量绑定(bind):

whereRaw('? between saturday_ot and saturday_ct', [$t])

2. 使用带有两个条件的 where,这两个条件使用两个列值作为 $t 变量值的边界:

where(function ($query) use ($t) {
    $query->where('saturday_ot', '<=', $t);
    $query->where('saturday_ct', '>=', $t);
})

关于php - Laravel/Lumen 中两列之间的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34950852/

相关文章:

javascript - 通知: Undefined index:

php - 从 Joomla SQL 表中选择数据,其中任何值都是变量

javascript - 如何使用 Vue js 从 API 数据创建搜索过滤器?

laravel - 在 Laravel Elixir 5.2 上调用任务之前检查文件是否存在

mysql - Laravel:将错误消息存储在数据库中

php - curl 错误 60 : SSL Certificate unable to get local issuer certificate:Tried Everything

php 逗号分隔值的唯一/不同值

php - htmlentities() 期望参数 1 为字符串,数组给定

laravel - 使用 Laravel FCM 向设备和 Web 浏览器发送推送通知

laravel-5 - 尝试通过单击 Laravel VS Code 来访问代码中的文件