在查询生成器 laravel 中投射

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/34713490/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 13:01:39  来源:igfitidea点击:

Cast in query builder laravel

laravellaravel-query-builder

提问by Neversaysblack

I want to castorderBy in query builder laravel

我想cast在查询生成器 laravel 中 orderBy

because my priceis varchartype..

因为我pricevarchar类型..

so when it's sorting...the result is far from I want...

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

my script like this

我的剧本是这样的

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

i already try something like this

我已经尝试过这样的事情

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

how can I cast OrderBy query builder so I can sort pricedesc

我如何投射 OrderBy 查询构建器,以便我可以对pricedesc进行排序

回答by Jeff

Try it with orderByRaw():

试试看orderByRaw()

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