【发布时间】:2021-01-22 22:25:36
【问题描述】:
晚上好
我仍然是 SQL 查询和 Doctrine 查询构建器的初级。 我的问题很简单,简单到我找了几个小时。
我在一个 symfony 4.4 LTS 项目中。 我有一个表格,代表电子商务网站上的订单。有4个字段:id、custommer_id、created_at、status
我想要什么:
过去 20 个状态为“新”且 ID 为后代的订单
如果我进行 SQL 查询
SELECT *
FROM order o
WHERE o.status = 'new'.
ORDER BY o.created_at DESC, o.id DESC
limit 20
这是一个失败,因为我没有按降序获得 id。我仍然无法理解为什么。
最后我在 SQL 中找到了这个解决方案:
SELECT *
FROM
(
SELECT *
FROM order o
WHERE o.status = 'new'.
ORDER by created_at DESC
LIMIT 20
) table_order
ORDER by id DESC
酷!我按 ID 降序获取最后 20 条命令。
现在我必须使用 Doctrine 的 createQueryBuilder 来完成。 我尝试了很多解决方案都没有成功。 你能帮我么? 提前谢谢你
【问题讨论】: