【发布时间】:2016-06-07 23:39:13
【问题描述】:
我在 Symfony 2 中的查询结果有一个奇怪的行为。 我在 Oracle 数据库中有这样的数据,顺序是这样的:
- BU 4 2015
- bU 2
- BU C
- 总线
- BU 4 2014
注意,第二个数据中小写
我只想按字母顺序显示此列表,没有任何区分大小写的支持。 想要的结果:
- BU C
- bU 2
- BU 4 2014
- BU 4 2015
- BU S
现在,这里是使用 Symfony 2.5.12 制作的 Querybuilder:
$queryBuilder = $this->createQueryBuilder('e');
$queryBuilder->orderBy('e.name');
但是查询,按这个顺序显示我的列表:
- BU C
- BU 4 2014
- BU 4 2015
- BU S
- bU 2
当我在我的 Oracle 数据库客户端中播放 symfony 2 分析器中显示的查询时,我得到了想要的结果。
当我转储查询生成器结果时,我得到了错误的订单列表。
我设法通过这个解决了我的问题
$queryBuilder = $this->createQueryBuilder('e');
$queryBuilder
->select(e)
->addSelect('UPPER(e.name) as HIDDEN name')
->orderBy('name');
所以,我只想知道为什么我会在查询构建器中出现这种奇怪的行为?
谢谢。
【问题讨论】:
-
对Oracle不太了解,但可能是排序规则的问题。
标签: php oracle symfony doctrine-orm query-builder