gpt4 book ai didi

php - 如何在 Symfony2 Doctrine2 中将 varchar 排序为 int?

转载 作者:可可西里 更新时间:2023-11-01 06:43:49 26 4
gpt4 key购买 nike

我有以下代码:

$entity = $em->getRepository('MyBundle:MyEntity')
->createQueryBuilder('q')
->...
->orderBy('q.varcharCol')
->getQuery()
->getResult();

varcharProp 是一个 varchar 列,包含以下值:10、10a、101、20、300、20b、21、200。我想按 varcharProp 对我的实体进行排序,但将其转换为整数,我必须在查询中执行此排序,因为我限制了结果。

在 Doctrine2 中可以做这样的事情吗?

entity->orderBy('ABS(q.varcharCol)')

或者更改 varcharProp 列类型?

最佳答案

解决此问题的最佳方法是添加一个带有 orderBy 表达式的 select 作为隐藏列。我的意思是:

$entity = $em->getRepository('MyBundle:MyEntity')
->createQueryBuilder('q')
->addSelect('ABS(q.varcharCol) AS HIDDEN foo')
->...
->orderBy('foo')
->getQuery()
->getResult();

感谢@Qoop 和@eggyal

关于php - 如何在 Symfony2 Doctrine2 中将 varchar 排序为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com