【问题标题】:Doctrine DQL: Find lowest integer value availableDoctrine DQL:查找可用的最低整数值
【发布时间】:2017-07-15 06:38:01
【问题描述】:

我想用 Doctrine 编写一个 DQL 查询,让我可以找到特定列中可用的最小整数。

表格(ABC)

A              B
----------------
0              M
1              P
2              T
4              X
5              L
7              C

我想要一个单一的标量结果。 在这种情况下,(SELECT LowestValueAvailable(A) FROM ABC) = 3。

我知道如何用基本 SQL 编写它,但我无法在 DQL 中解决这个问题。 这将是我想要 DQLize 的确切 SQL 请求:Find the smallest unused number in SQL Server

谢谢。

【问题讨论】:

  • MIN 函数?
  • 行不通,因为它会返回 0。:) 我需要 3。
  • 将您的工作 SQL 查询放在帖子中。
  • 见。用于工作 SQL。 stackoverflow.com/questions/684106/…
  • 有点难以弄清楚,不是吗? Doctrine 允许我们编写 SQL,但它是不安全的。因此,如果有人弄清楚这一点,将不胜感激:)

标签: php doctrine-orm symfony dql scalar


【解决方案1】:

假设 A 为映射数据库中 A 列的属性:

$dql = ' SELECT MIN(e.A) as minValue
         FROM YourBundle:YourEntity e
       ';
$result = $yourEntityManager->createQuery($dql)->getScalarResult();

通过此查询,您将在 A 列中获得 minValue。如果您需要输入 var_dump($result)

在教义文档中:http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#aggregate-functions

【讨论】:

  • 这不是我想要的,你反应太快了。 “在 DQL 中找到最小的 UNUSED 数”,当然,如果你愿意,不能为负数或无符号数。
  • 好的,问题的标题让我很困惑。如果您只想知道第一种方法的值,可以使用 dql 查询获取所有不同的值并稍后处理结果。
猜你喜欢
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
相关资源
最近更新 更多