gpt4 book ai didi

mysql - 在 Doctrine2 的选择中使用比较作为别名

转载 作者:可可西里 更新时间:2023-11-01 07:37:51 26 4
gpt4 key购买 nike

尝试在 Doctrine2 中这样做:

...->createQuery('SELECT m.id, (m.status != 1) as verified...

但这会引发一个错误——如果我去掉括号,我会得到另一个错误。我如何实现这种 m.status 比较?

谢谢

最佳答案

Doctrine 2 不支持 SELECT 子句中的这些比较(至少不支持 2.3,不确定 2.4)。

您可以使用 CASE 表达式作为解决方法:

SELECT m.id, CASE WHEN m.status != 1 THEN 1 ELSE 0 END AS verified ...

或:

SELECT m.id, CASE WHEN m.status = 1 THEN 0 ELSE 1 END AS verified ...

如果您需要为 ORDER BY 子句(或类似的东西)verified,但在结果中实际上不需要它,您可以使用 HIDDEN 表达式:

SELECT m.id, CASE WHEN m.status = 1 THEN 0 ELSE 1 END AS HIDDEN verified ...

一个完全不同的解决方案是写一个custom DQL function .

关于mysql - 在 Doctrine2 的选择中使用比较作为别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9041658/

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