【问题标题】:laravel eloquent order by specific value with PostreSQL databaselaravel eloquent order by specific value with PostgreSQL 数据库
【发布时间】: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 中的查询应该有所不同吗?还是我做错了什么?

【问题讨论】:

标签: laravel postgresql eloquent sql-order-by


【解决方案1】:

您必须将您的FIELD(...) 更改为:

CASE
    WHEN status='pending' THEN 1
    WHEN status='accepted' THEN 2
    WHEN status='delivered' THEN 3
    WHEN status='rejected' THEN 4
END

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2021-03-02
    • 2018-03-29
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2013-10-11
    相关资源
    最近更新 更多