【发布时间】:2015-11-01 23:24:42
【问题描述】:
如何使用 Doctrine Query Builder 对结果进行排序,以便匹配第一个条件的结果首先出现,然后是第二个条件的结果(并且所有结果都应该匹配第三个条件)?
这是一个查询示例:
$QB->select('k', 'k.word')
->from($repository, 'k')
->where('k.word LIKE :strict')
->orWhere('k.word LIKE '.':loose')
->andWhere('k.status=1')
->setMaxResults(5)
->setParameter('strict', $query.'%')
->setParameter('loose', '%'.$query.'%');
我尝试使用orderBy(),但没有成功 - 不知道语法是什么......
更新。 数据和结果的示例列表: 假设我有一个数据列表:
- 字:汽车,状态:1
- 字:洗车,状态:1
- 字:电动车,状态:1
- 字:制图,状态:1
- 字:敞篷车,状态:0
搜索查询是“ca”。
我希望查询先排序并显示这些结果:
- 字:汽车,状态:1
- 字:洗车,状态:1
- 字:制图,状态:1
那么这个结果:
- 字:电动车,状态:1
并过滤掉这个,因为状态是0:
- 字:敞篷车,状态:0
【问题讨论】:
-
你用的是orderBy还是OrderBy?
-
对不起,我的意思是
orderBy- 更正了原帖 -
您能否提供一个示例条目列表以及您希望它们如何排序?
-
我在帖子中添加了一个示例
标签: php mysql doctrine-orm