MySQL:JOOQ 中的 IF() 函数
MySQ: IF() function in JOOQ
我看到JOOQ不支持MySQL的IF函数,但是我在DSL.java
中找到iif()
,是SQL Sever风格,我在MySQL,它运行良好,那么我可以在我的 MySQL 查询中使用 iff() 吗?
这是我的测试代码
dslContext.select(EMPLOYEE.EMPLOYEE_ID,
DSL.iif(EMPLOYEE.ALGO.eq(1), EMPLOYEE.FULLNAME, EMPLOYEE.ACCOUNT).as("fullname"))
.from(EMPLOYEE)
.where(EMPLOYEE.EMPLOYEE_ID.eq(100)).fetchOneInto(Employee.class);
jOOQ 3.14 将通过 #10160 添加对 MySQL 的 IF()
的原生支持。这并不是真正必要的功能,与编写等效的 CASE
表达式相比,它只是方便而已:
-- MySQL
IF (C, A, B)
-- Standard SQL
CASE WHEN C THEN A ELSE B END
如果您更喜欢 IF()
,您可以随时编写自己的 plain SQL template,甚至在 jOOQ 3.14
之前
我看到JOOQ不支持MySQL的IF函数,但是我在DSL.java
中找到iif()
,是SQL Sever风格,我在MySQL,它运行良好,那么我可以在我的 MySQL 查询中使用 iff() 吗?
这是我的测试代码
dslContext.select(EMPLOYEE.EMPLOYEE_ID,
DSL.iif(EMPLOYEE.ALGO.eq(1), EMPLOYEE.FULLNAME, EMPLOYEE.ACCOUNT).as("fullname"))
.from(EMPLOYEE)
.where(EMPLOYEE.EMPLOYEE_ID.eq(100)).fetchOneInto(Employee.class);
jOOQ 3.14 将通过 #10160 添加对 MySQL 的 IF()
的原生支持。这并不是真正必要的功能,与编写等效的 CASE
表达式相比,它只是方便而已:
-- MySQL
IF (C, A, B)
-- Standard SQL
CASE WHEN C THEN A ELSE B END
如果您更喜欢 IF()
,您可以随时编写自己的 plain SQL template,甚至在 jOOQ 3.14