MyBatis--------邮箱正则、身份证正则、电话正则

电子邮箱

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
       (
            -- 15位数字、18位数字、17为数字末尾加上X
               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>
posted @ 2022-07-17 12:13  小大宇  阅读(2)  评论(0编辑  收藏  举报