MySqlの正規表現

MySqlの正規表現

仕事で、ある11桁の番号を抽出することになった。

11桁の番号は、1番から10番までは連番ですが、11桁目はチェックポイント。

最初考えたSQL文はこれ:

SELECT 
    * 
FROM 
    Table
WHERE 
    slipNo LIKE '%5012018001% 
    OR slipNo LIKE '%5012018002%
    OR slipNo LIKE '%5012018003%
    OR slipNo LIKE '%5012018009%

結果は問題ないけど、無限にWHERE句でOR、LIKEの組み合わせはDRY規則に反するので、あまり好まない。。。

そこで正規表現

SELECT 
    *
FROM 
    Table
WHERE slipNo REGEXP ’501201800[1-9]*'

いいですね

发表评论

邮箱地址不会被公开。 必填项已用*标注