电子邮箱
MySQL
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="mysql">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
AND ${sourceField} REGEXP "[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+"
</select>
Oracle
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="oracle">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
AND regexp_like(${sourceField},'[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+')
</select>
身份证
MySQL
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="mysql">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
AND
(
${sourceTable} REGEXP "^[0-9]{18}$"
OR ${sourceTable} REGEXP "^[0-9]{15}$"
OR ${sourceTable} REGEXP "^[0-9]{17}X$"
)
</select>
Oracle
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="oracle">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
(
regexp_like(graduation_code,'^\d{18}|\d{17}X$')
OR regexp_like(graduation_code,'^\d{15}$')
)
</select>
电话号码
MySQL
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="mysql">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
AND ${sourceField} REGEXP "^[1][35678][0-9]{9}$"
</select>
Oracle
<select id="querySourceDataCount" resultType="java.lang.Integer" databaseId="oracle">
SELECT ${primaryKey} FROM ${sourceTable}
WHERE
1=1
AND regexp_like(${sourceField},'^[1][35678][0-9]{9}$')
)
</select>