sql >> データベース >  >> RDS >> Mysql

mysqlでの正規表現キャプチャグループのシミュレーション

    いくつかの試行錯誤の末、私は必要なことを実行する次のクエリを思いつきました。基本的に、文字列の末尾から数字を区切り、次の数字を区切る前にその数の文字を削除します。 version1の列は正の2桁の数字に制限されていますが、それは私の場合に耐えられる制限です。

    SELECT
        IF(CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL) > 0, 
            CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL), 
            CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),1) AS DECIMAL)) AS version1,
        SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -2)) - 1), '.', -1) as version2,
        SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -1)) - 1), '.', -1) as version3,
        SUBSTRING_INDEX(version, '.', -1) as version4
    FROM Version
    HAVING version1 >= 5
    ;
    



    1. MySQLの2つの日付間の年の差を整数として取得します

    2. SQLAlchemyパスワードが提供されていませんエラー

    3. 修正:MariaDBのユーザー「root」@「localhost」のアクセスが拒否されました

    4. PostgreSQL13を使用した論理レプリケーションのパーティショニング