首页 > 解决方案 > 如何在没有原始选择的情况下在 Laravel 中绑定 sql 查询参数?

问题描述

我有以下查询,

$query = "SELECT id,name, user_birthday FROM `users` where DATE_FORMAT(user_birthday, '%m-%d') >=";
$query .=" DATE_FORMAT(NOW(), '%m-%d') and DATE_FORMAT(user_birthday, '%m-%d')<=";
$query .=" DATE_FORMAT((NOW() + INTERVAL +14 DAY), '%m-%d') and id in (";
$query .=" (SELECT friend_id FROM user_friends where user_id = :userID";
$query .=" UNION ";
$query .=" SELECT friend_id FROM user_friends where user_id in (SELECT friend_id FROM user_friends where user_id = :userID)))";
$query .=" order by DATE_FORMAT(user_birthday, '%m-%d') ASC";

$res = DB::select($query, ['userID' => $userID]);

出于某种原因,我无法在不使用 Raw select 的情况下绑定 UserID 参数,我想这是因为查询的复杂性和层次结构......

标签: mysqllaravel

解决方案


你有:userID两次。这不适用于非模拟的准备好的语句。

(@Paul Spiegel 在评论中回答)


推荐阅读