jOOQ 中的字符串 LIKE 列
string LIKE column in jOOQ
我一直在寻找一种在 jOOQ 中实现以下查询的方法,但找不到任何东西。
SELECT *
FROM tableName
WHERE 'this is a string' LIKE CONCAT('%', word ,'%')
提前致谢。
如果你这样使用就可以了
SELECT * FROM TableName WHERE ColumnName LIKE CONCAT('%','item', '%')
jOOQ会是这样的
DSLContext create = DSL.using(connection, dialect);
CREATE.Select * .from(TableName).WHERE
(TableName.ColumnName.LIKE CONCAT ('%item%'))
.EXECUTE()
这里有两点值得一提:
- 如何在
LIKE
谓词 左侧创建绑定变量
- 如何在 SQL
中创建串联
1。绑定变量
为此使用 DSL.val(String)
,例如:
Field<String> field = val("this is a string");
然后您可以像使用任何其他查询一样在查询中使用它 Field
2。串联
为此使用 DSL.concat(Field...)
方法。例如:
Field<String> concatenated = concat(inline("%"), TABLENAME.WORD, inline("%"));
请注意,我在这里使用 DSL.inline(String)
,而不是 val()
,因为这将创建一个字符串文字(内联绑定变量),而不是普通的绑定变量。更多信息在这里:
https://www.jooq.org/doc/latest/manual/sql-building/bind-values/inlined-parameters
完成查询:
DSL.using(configuration)
.selectFrom(TABLENAME)
.where(val("this is a string").like(concat(
inline("%"), TABLENAME.WORD, inline("%")
)))
.fetch();
我一直在寻找一种在 jOOQ 中实现以下查询的方法,但找不到任何东西。
SELECT *
FROM tableName
WHERE 'this is a string' LIKE CONCAT('%', word ,'%')
提前致谢。
如果你这样使用就可以了
SELECT * FROM TableName WHERE ColumnName LIKE CONCAT('%','item', '%')
jOOQ会是这样的
DSLContext create = DSL.using(connection, dialect);
CREATE.Select * .from(TableName).WHERE
(TableName.ColumnName.LIKE CONCAT ('%item%'))
.EXECUTE()
这里有两点值得一提:
- 如何在
LIKE
谓词 左侧创建绑定变量
- 如何在 SQL 中创建串联
1。绑定变量
为此使用 DSL.val(String)
,例如:
Field<String> field = val("this is a string");
然后您可以像使用任何其他查询一样在查询中使用它 Field
2。串联
为此使用 DSL.concat(Field...)
方法。例如:
Field<String> concatenated = concat(inline("%"), TABLENAME.WORD, inline("%"));
请注意,我在这里使用 DSL.inline(String)
,而不是 val()
,因为这将创建一个字符串文字(内联绑定变量),而不是普通的绑定变量。更多信息在这里:
https://www.jooq.org/doc/latest/manual/sql-building/bind-values/inlined-parameters
完成查询:
DSL.using(configuration)
.selectFrom(TABLENAME)
.where(val("this is a string").like(concat(
inline("%"), TABLENAME.WORD, inline("%")
)))
.fetch();