java - 如何使用jooq来表达mysql REGEXP?

标签 java mysql sql jooq

我有这样的查询:

SELECT * 
FROM uni_customer 
WHERE mobile REGEXP '^(1[3,4,5,8]){1}\\d{9}$'

但是字段中没有REGEXP(String)这样的函数, 而 mysql 不支持这样的语法:

SELECT * 
FROM uni_customer 
WHERE  regexp(mobile,'^(1[3,4,5,8]){1}\\d{9}$')

最佳答案

官方support for the REGEXP operator即将在即将推出的 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}$")));

关于java - 如何使用jooq来表达mysql REGEXP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859734/

相关文章:

java - 如何在protobuf3中将 map 添加到消息中

php - 按数组的一列从数据库查询中对数组进行排序

php - 为什么我的 MySQL 搜索查询返回列名和数据?

php - 将天数添加到显示奇数的时间戳

mysql - 如果满足条件则忽略其他记录

java - org.hibernate.hql.internal.ast.QuerySyntaxException :

java - ARCore : should I add "uses-feature android:glEsVersion="0x0002000 0""?

java - java中的列名无效,但适用于数据库

sql - 获取一组记录的最接近给定日期的日期

java - 使用 Java 将视频上传到 vimeo 帐户