laravel eloquent order by specific value with PostgreSQL 数据库
Posted
技术标签:
【中文标题】laravel eloquent order by specific value with PostgreSQL 数据库【英文标题】:laravel eloquent order by specific value with PostreSQL database 【发布时间】:2021-10-16 23:55:41 【问题描述】:我是 Laravel 的 PostgreSQL 新手。我有一个查询,我想按status
列特定值排序,而不是按字母顺序,例如:
1. pending
2. accepted
3. delivered
4. rejected
在我使用 mysql 之前,它运行良好。将数据库更改为 PostgreSQL 后,查询不起作用:这是我的代码:
$query->orderByRaw('FIELD(status, "pending", "accepted", "delivered", "rejected") ASC')->get();
以及错误截图:
它在非表格列中显示pending
;
在 laravel postgres 中的查询应该有所不同吗?还是我做错了什么?
【问题讨论】:
***.com/questions/1309624/… 【参考方案1】:您必须将您的FIELD(...)
更改为:
CASE
WHEN status='pending' THEN 1
WHEN status='accepted' THEN 2
WHEN status='delivered' THEN 3
WHEN status='rejected' THEN 4
END
【讨论】:
以上是关于laravel eloquent order by specific value with PostgreSQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent multiple whereHas on relationship where column 'order' 高于前一个 whereHas
Laravel Eloquent Multiple Where with count