mysql - 如何在没有原始选择的情况下在 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 参数,我想这是因为查询的复杂性和层次结构......
解决方案
你有:userID
两次。这不适用于非模拟的准备好的语句。
(@Paul Spiegel 在评论中回答)
推荐阅读
- python - 2017 青铜 USACO 问题 1 运行时错误 python
- python - 如何更改代码从github中的文件夹获取图像
- javascript - Stripe Elements JS 重定向用户
- java - 在Java中,如何根据子字符串按升序对一系列字符串进行排序?
- reactjs - 为什么react-app(在打字稿中)在编辑时无法热重载
- docker - Nextcloud 在 docker 退出代码 127
- c - 如果语句后 C 中的 getopt() 无法正常工作
- php - 如何在 PHP 中从查询中动态获取变量
- reactjs - 延迟 JSX 评估
- java - Docker - 在容器上执行脚本