作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
Doctrine 是否支持 IF 语句?我收到以下错误:
Expected known function, got 'IF'
在使用 IF 执行此查询时:
$qb->select("c.id, IF(c.type_id LIKE 9, c.name, c.lastname) as name")
用纯 SQL 重写时它工作正常。有什么解决方法吗?
最佳答案
是的 if
Doctrine 中的陈述不被支持,您可以将其转换为 case when
IF(c.type_id LIKE 9, c.name, c.lastname) as name
到
case when c.type_id = 9 then c.name else c.lastname end as name
更新:根据评论,concat
函数在 case-when
答案是肯定的,非常允许。这是一个例子
mysql> select * from timesheets ;
+-----------+-------+----------+
| client_id | hours | category |
+-----------+-------+----------+
| 1 | 1.50 | onsite |
| 1 | 1.50 | onsite |
| 1 | 1.00 | remote |
| 2 | 1.50 | remote |
+-----------+-------+----------+
4 rows in set (0.00 sec)
mysql> select
case when category = 'onsite' then concat('ON',' ',hours) else hours
end as dd from timesheets ;
+---------+
| dd |
+---------+
| ON 1.50 |
| ON 1.50 |
| 1.00 |
| 1.50 |
+---------+
4 rows in set (0.00 sec)
关于mysql - Doctrine 中的简单 IF 测试语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792968/
我是一名优秀的程序员,十分优秀!