在查询构建器 laravel 中投射

Posted

技术标签:

【中文标题】在查询构建器 laravel 中投射【英文标题】:Cast in query builder laravel 【发布时间】:2016-04-15 06:53:27 【问题描述】:

我想在查询生成器 laravel 中 castorderBy

因为我的pricevarchar 类型..

所以当它在排序时......结果远非我想要的......

我的脚本是这样的

DB::table('test')->where(...)->orderBy('price')->get();

我已经尝试过类似的方法

$query = CAST(price AS DECIMAL(10,2)) DESC;
DB::table('test')->where(...)->orderBy($query)->get();

如何转换 OrderBy 查询生成器,以便对 price desc 进行排序

【问题讨论】:

【参考方案1】:

试试orderByRaw():

$query = "CAST(price AS DECIMAL(10,2)) DESC";
DB::table('test')->where(...)->orderByRaw($query)->get();

【讨论】:

用引号试试$query = "CAST(price AS DECIMAL(10,2)) DESC"; 很高兴能帮上忙。干杯。

以上是关于在查询构建器 laravel 中投射的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel get() 查询构建器中附加两个数组

Laravel:查询构建器

在查询中使用 AND 的 Laravel 查询构建器

将原始 SQL 查询传递给 Laravel 上的查询构建器

在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?

是否有必要在 laravel 中为数据库操作创建模型(用于查询构建器)?