mysql - 如何在 Laravel 中运行此 SQL 查询?

标签 mysql sql laravel

我试图在 Laravel 中以多种方式运行此 SQL 查询,但它显示错误。

SELECT * FROM reservas WHERE cliente_id = 2201 AND dia >= '2020-10-15' GROUP BY dia

我尝试运行此查询,但出现违规错误

DB::select('SELECT * FROM reservas WHERE cliente_id = :id AND dia >= :date GROUP BY dia', ['id' => $id, 'date' => $date]);

我发送的变量是有数据的,即错误不是来自空变量,远非如此,而是错误来自于查询。 应该注意的是,这个查询在 SQL 中确实有效。

最佳答案

您需要像这样编写查询 groupBy(DB::raw('dia'))

\DB::table('reservas')->where('cliente_id',$id)->where('dia',$date)->get()->groupBy('dia');

如果您的 groupBy 无法正常工作,您需要在 config/database.php 中更改 false,例如 strict => false

希望它的工作!

关于mysql - 如何在 Laravel 中运行此 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64370937/

相关文章:

php - 在 laravel 5 中配置测试环境的最佳方式是什么?

php - 从 "Fat model, skinny controller"的角度使用 Laravel Eloquent ORM 的做法是什么?

mysql - 使用 TableGateway 在 ZF2 中进行左连接

php - MySQL DQL左连接查询排序

mysql - 如何在单个合并语句中执行多个更新

sql - SQLite3 在 Node.js 中有准备好的语句吗?

python - Django on_delete=models.SET 返回Model或级联删除

mysql - 是否可以在单个查询中查询 MySQL 中的树结构表到任何深度?

sql - 如何对 SQL 行进行排序以创建美观的汇总?

php - 如何使用 laravelcollective/html 验证器的规则数组检查表单的 2 个字段是否具有相同的内容?