symfony - Doctrine SQL Query Order By ASC NULL Last
问题描述
我使用Doctrine 2.4。我尝试通过优先级升序排列我的活动列表,优先级为 NULL,最后优先级为 0。
SELECT * FROM campaign ORDER BY priority IS NULL, priority = 0, priority ASC
你知道我该怎么做吗?
$query->addOrderBy('c.priority', 'ASC');
解决方案
我找到了解决方案,我这样做了:
$query->addSelect('CASE WHEN c.priority IS NULL THEN 1 ELSE 0 END as HIDDEN priority_is_null');
$query->addSelect('CASE WHEN c.priority = 0 THEN 1 ELSE 0 END as HIDDEN priority_is_zero');
$query->addOrderBy('priority_is_null', 'ASC');
$query->addOrderBy('priority_is_zero', 'ASC');
$query->addOrderBy('c.priority', 'ASC');
推荐阅读
- javascript - React useEffect on function props
- shippo - 如何使用批处理 API 将自定义文本添加到 Shippo 标签?
- html - 引导模式中的数据选择器没有功能
- c - 创建密码,并出现函数指针错误已编辑!密码编译但重复大写
- php - 在数组 laravel excel 上调用成员函数 all()
- javascript - chart.js 动态调整垂直条之间的间隙
- c# - 无法将 Visual Studio 2019 与 MySQL 数据库连接并将文本框中的用户输入插入所述数据库(已解决)
- regex - 什么正则表达式会捕获从 second : mark 到行尾的所有内容?
- javascript - Ion RangeSlider 在 Angular 9 项目中没有正确重新加载
- laravel-nova - 如何更改 Laravel Nova 资源索引页上行的背景颜色?