Available in versions: Dev (3.21) | Latest (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12
SIMILAR TO谓词
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
SIMILAR TO
predicates 因其支持更复杂的通配符和正则表达式匹配而广受欢迎。
所有 SQL 数据库中支持的通配符包括:
- _: (单字符通配符)
- %: (多字符通配符)
使用 jOOQ,可以像这样从任何 列表达式 创建 SIMILAR TO
predicate:
TITLE SIMILAR TO '%abc%' TITLE NOT SIMILAR TO '%abc%'
BOOK.TITLE.similarTo("%abc%") BOOK.TITLE.notSimilarTo("%abc%")
为 SIMILAR TO predicate 转义操作数
通常,您的模式可能包含通配符字符 "_"
和 "%"
,在这种情况下,您可能希望转义它们。jOOQ 不会自动转义 similarTo()
和 notSimilarTo()
方法中的模式。相反,您可以像这样显式定义转义字符:
TITLE SIMILAR TO '%The !%-Sign Book%' ESCAPE '!' TITLE NOT SIMILAR TO '%The !%-Sign Book%' ESCAPE '!'
BOOK.TITLE.similarTo("%The !%-Sign Book%", '!') BOOK.TITLE.notSimilarTo("%The !%-Sign Book%", '!')
在上述 predicate 表达式中,感叹号字符被用作转义字符,用于转义通配符字符 "!_"
和 "!%"
,以及转义转义字符本身:"!!"
。
有关使用 SIMILAR TO
predicate 转义模式以及支持的正则表达式语法的更多详细信息,请参阅您的数据库手册。
方言支持
此示例使用 jOOQ
BOOK.TITLE.similarTo("%X%")
翻译成以下特定方言的表达式
Aurora Postgres, BigQuery, CockroachDB, DuckDB, Exasol, Firebird, Postgres, Snowflake, YugabyteDB
BOOK.TITLE SIMILAR TO '%X%'
ASE, Access, Aurora MySQL, ClickHouse, DB2, Databricks, Derby, H2, HSQLDB, Hana, Informix, MariaDB, MemSQL, MySQL, Oracle, Redshift, SQLDataWarehouse, SQLServer, SQLite, Sybase, Teradata, Trino, Vertica
/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
您对此页面有什么反馈吗? 我们很乐意听取您的意见!