可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

比较谓词

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

在 SQL 中,比较谓词使用常见的比较运算符构成

  • = 用于测试相等性
  • <>!= 用于测试不相等性
  • > 用于测试严格大于
  • >= 用于测试大于或等于
  • < 用于测试严格小于
  • <= 用于测试小于或等于

不幸的是,Java 不支持运算符重载,因此这些运算符也在 jOOQ 中实现为方法,就像任何其他 SQL 语法元素一样。 org.jooq.Field 接口的相关部分如下

eq or equal(T);                                     // =  (some bind value)
eq or equal(Field<T>);                              // =  (some column expression)
eq or equal(Select<? extends Record1<T>>);          // =  (some scalar SELECT statement)
ne or notEqual(T);                                  // <> (some bind value)
ne or notEqual(Field<T>);                           // <> (some column expression)
ne or notEqual(Select<? extends Record1<T>>);       // <> (some scalar SELECT statement)
lt or lessThan(T);                                  // <  (some bind value)
lt or lessThan(Field<T>);                           // <  (some column expression)
lt or lessThan(Select<? extends Record1<T>>);       // <  (some scalar SELECT statement)
le or lessOrEqual(T);                               // <= (some bind value)
le or lessOrEqual(Field<T>);                        // <= (some column expression)
le or lessOrEqual(Select<? extends Record1<T>>);    // <= (some scalar SELECT statement)
gt or greaterThan(T);                               // >  (some bind value)
gt or greaterThan(Field<T>);                        // >  (some column expression)
gt or greaterThan(Select<? extends Record1<T>>);    // >  (some scalar SELECT statement)
ge or greaterOrEqual(T);                            // >= (some bind value)
ge or greaterOrEqual(Field<T>);                     // >= (some column expression)
ge or greaterOrEqual(Select<? extends Record1<T>>); // >= (some scalar SELECT statement)

请注意,每个运算符都由两个方法表示。一个冗长的方法(例如 equal())和一个双字符的方法(例如 eq())。这两种方法是相同的。您可以根据自己的喜好选择任何一种。本手册将始终使用更冗长的方法。

jOOQ 使用比较运算符的便捷方法

除了上述内容外,jOOQ 还提供了一些便捷方法,用于使用比较谓词对字符串执行常见操作

LOWER(TITLE) = LOWER('animal farm')
BOOK.TITLE.equalIgnoreCase("animal farm")

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的反馈!

The jOOQ Logo