使用负整数对属性进行排序

时间:2014-03-20 17:52:53

标签: mysql sorting symfony orm dql

我想使用以下属性对地址查询结果进行排序:

/**
 * @ORM\Column(length=10)
 */
private $block;

/**
 * @ORM\Column(length=10)
 */
private $stairs;

/**
 * @ORM\Column(length=10)
 */
private $floor;

/**
 * @ORM\Column(length=10)
 */
private $door;
来自Property实体的

所以我在关联的类(社区)中做了:

/**
 * @ORM\OneToMany(targetEntity="Acme\MyBundle\Entity\Property",
 *     mappedBy="community", cascade={"persist", "remove"})
 * @ORM\OrderBy({"block" = "ASC", "stairs" = "ASC", "floor" = "ASC", "door" = "ASC"})
 */
private $properties;

正如您所看到的,属性不是整数,因此它们似乎总是按字符串排序。

当必须对负数进行排序时,结果不是逻辑。 E.g。

logic blocks sorting: -3, -2, -1, 0, 1, ...
sorting result      : -1, -2, -3, 0, 1, ...

只需将属性类型更改为整数即可解决问题,但我需要提供获取字符串而不是整数的选项。例如。 阻止:A1 ,或只是 A

我能想象解决它的唯一问题是当-符号后面有一个整数时将其检测为负号。但必须有更好的方法来实现这种行为。有什么想法吗?

0 个答案:

没有答案