php - Laravel 原始 SQL 查询,具有多次出现的命名绑定(bind)

标签 php database laravel laravel-5 laravel-query-builder

我正在使用 DB 外观和选择方法来运行带有绑定(bind)的原始 SQL 查询。只需要知道我们是否可以在查询中有多个具有相同名称的参数,并通过仅提供 1 个具有参数名称的绑定(bind)来替换它。

例如

 $sql = "SELECT students.id, students.name FROM students 
                where students.student_id = :student_id 
                where added_on = ( SELECT MAX( added_on ) AS newdate
                FROM students WHERE student_id = :student_id)"

    return DB::select($sql, [
        'student_id' => 1
    ]);

注意:我可能不必在此查询中使用 student_id 两次。它只是一个例子。
目的是知道我们是否能做到这一点。

最佳答案

我不相信它可能,这并不理想,但我通常会这样做:

$sql = "SELECT students.id, students.name FROM students 
                where students.student_id = :student_id_1
                where added_on = ( SELECT MAX( added_on ) AS newdate
                FROM students WHERE student_id = :student_id_2)"

    $student_id = 1;

    return DB::select($sql, [
        'student_id_1' => $student_id,
        'student_id_2' => $student_id
    ]);

关于php - Laravel 原始 SQL 查询,具有多次出现的命名绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59172149/

相关文章:

php - 多个内部联接和一对一//一对多关系

javascript - 我需要 php 中 url 的主题标签值

database - 在 Android 上降级数据库

mysql - 如何获取所有员工第二高工资的记录基数

php - 如何在 Laravel 5 中重新生成 APP_KEY 并设置新密码

laravel - 了解 Laravel 缓存 : Cache facade and Redis

javascript - 更改 480 宽度 Javascript 按钮的 URL

php - Yii findAll() 不工作

MYSQL 左连接不正确的结果

php - 有没有办法从字符串编译 Blade 模板?