Doctrine orm 在条令查询生成器中使用保留关键字作为别名

Doctrine orm 在条令查询生成器中使用保留关键字作为别名,doctrine-orm,Doctrine Orm,我怎样才能逃出min,让它工作?我尝试将min别名改为类似\u min的内容,但应该有更好的方法 我尝试了单引号和反勾号,但都不起作用。使用Mysql,可以使用反勾号`min` 使用Postgres,您可以使用doublequote“min” 您可以使用另一个单词,如minimum作为别名,以避免依赖数据库使用Mysql,您可以使用backtick`min` 使用Postgres,您可以使用doublequote“min” 您可以使用另一个单词(如minimum)作为别名,以避免依赖数据库您将无

我怎样才能逃出min,让它工作?我尝试将
min
别名改为类似
\u min
的内容,但应该有更好的方法


我尝试了单引号和反勾号,但都不起作用。

使用Mysql,可以使用反勾号
`min`

使用Postgres,您可以使用doublequote
“min”


您可以使用另一个单词,如
minimum
作为别名,以避免依赖数据库使用Mysql,您可以使用backtick
`min`

使用Postgres,您可以使用doublequote
“min”


您可以使用另一个单词(如
minimum
)作为别名,以避免依赖数据库

您将无法使用
min
max
作为别名,因为它在DQL的当前语法中根本不可用。您可以在中找到此信息。在这里,您将了解以下内容:

在:

在:

最终,在:

标识符(名称、电子邮件等)必须匹配
[a-z_uu2;][a-z0-9_2;]*

正如您所看到的,无论如何,没有任何东西可以帮助您转义关键字。因此,实际上,当遇到
min
时,Lexer会将其识别为min函数(请参阅),而不是标识符,因此会出现错误


长话短说,您必须依赖本机查询或使用不属于保留关键字之一的别名


注意:条令允许您按照所讨论的方式实施,但问题与此无关。在这里,别名的问题是DQL解析器将其作为函数进行匹配,这在该位置是意外的。

您将无法使用
min
max
作为别名,因为它在DQL的当前语法中根本不可用。您可以在中找到此信息。在这里,您将了解以下内容:

在:

在:

最终,在:

标识符(名称、电子邮件等)必须匹配
[a-z_uu2;][a-z0-9_2;]*

正如您所看到的,无论如何,没有任何东西可以帮助您转义关键字。因此,实际上,当遇到
min
时,Lexer会将其识别为min函数(请参阅),而不是标识符,因此会出现错误


长话短说,您必须依赖本机查询或使用不属于保留关键字之一的别名


注意:条令允许您按照所讨论的方式实施,但问题与此无关。在这里,您的别名的问题是,DQL解析器将其作为函数进行匹配,这在这个位置是意外的。

您的数据库管理系统是什么?它是Postgres@gotoUpdated我的答案,似乎是转义Postgres关键字的双引号。你能确认一下吗?你的数据库管理系统是什么?是Postgres@gotoUpdated我的答案,似乎是转义Postgres关键字的双引号。你能确认吗?不幸的是,它也不起作用,我想我会选择
最小值
不幸的是,它也不起作用,我想我会选择
最小值
$em->createQueryBuilder()
->select("MIN(m.price) AS min")
->addSelect('MAX(m.price) AS max')
->from('AppBundle:Sites', 'm');`
SimpleSelectExpression  ::= (...) [["AS"] AliasResultVariable]
/* Alias ResultVariable declaration (the "total" of "COUNT(*) AS total") */
AliasResultVariable = identifier