次のようなクエリがあります。
SELECT *
FROM uni_customer
WHERE mobile REGEXP '^(1[3,4,5,8]){1}\\d{9}$'
しかし、in field のような関数はなくREGEXP(String)
、mysql は次のような構文をサポートしていません。
SELECT *
FROM uni_customer
WHERE regexp(mobile,'^(1[3,4,5,8]){1}\\d{9}$')
オペレーターの公式サポートはREGEXP
、次期 jOOQ 2.5.0 でまもなく利用可能になります。それまでの間、次のように jOOQ を自分で拡張できます。
Condition regexp = Factory.condition("{0} REGEXP {1}",
UNI_CUSTOMER.MOBILE,
val("^(1[3,4,5,8]){1}\\d{9}$"));
またはクエリで:
create.select()
.from(UNI_CUSTOMER)
.where(condition("{0} REGEXP {1}",
UNI_CUSTOMER.MOBILE, val("^(1[3,4,5,8]){1}\\d{9}$")));