php - OrderBy 不适用于学说 symfony2 中的别名
问题描述
我需要的
我需要排序别名。
symfony 代码
$qb->addSelect("(CASE WHEN (priority LIKE '%High%') THEN 1
WHEN (priority LIKE '%Medium%') THEN 2
ELSE 3 END) AS prioritys ");
排序代码
priority column name of view/table.
prioritys is alias.
$qb->orderBy('priority','ASC'); //works because here im accessing column from table/view.
$qb->orderBy('prioritys','ASC'); //doesnot works.
使用别名时出错
错误:[语义错误] 第 0 行,第 173 列,靠近“优先级 ASC”:错误:“优先级”未定义。
任何建议都是最受欢迎的。
解决方案
$qb->orderBy('prioritys','ASC'); // it should work, check symfony2 doc.
根据主要数据库,我们可以在 order by 子句中使用列别名。所以检查你的前端。
如果不支持,则按子句顺序使用 CASE 表达式,如下所示
ORDER BY CASE WHEN priority LIKE '%High%' THEN 1 WHEN priority LIKE '%Medium%' THEN 2 ELSE 3 END
推荐阅读
- email - 如何使用 GMAIL API 将标题“收件人和回复”添加到已生成的草稿中
- excel - VBA 的 OAUTH 问题不会发布 grant_type
- ios - 发出多个异步请求但只等待一个
- php - 通过表达式在 SQL 语句中动态设置参数
- sql-server - SQL Server 表中的 VBA 更新列,其中包含来自 excel 的数据
- java - Java打印出抛出的异常和没有异常抛出不同的地方
- python - 使用列索引数组索引 2D numpy 数组
- spring-boot - 以编程方式查找 Eureka 服务器主机和端口
- php - 使用选择下拉选项 Laravel 生成 ?filter[color]=2&filter[brand]=apple 等 url 参数
- serial-port - RS232 从 Linux SBC 到 Windows PC