我正在使用 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/