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

MySQL文字列分割

    これは、ストアドプロシージャを使用して実行できます

    DELIMITER $$
    
    CREATE FUNCTION strSplit(x VARCHAR(65000), delim VARCHAR(12), pos INTEGER) 
    RETURNS VARCHAR(65000)
    BEGIN
      DECLARE output VARCHAR(65000);
      SET output = REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos)
                     , LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1)
                     , delim
                     , '');
      IF output = '' THEN SET output = null; END IF;
      RETURN output;
    END $$
    
    
    CREATE PROCEDURE BadTableToGoodTable()
    BEGIN
      DECLARE i INTEGER;
    
      SET i = 1;
      REPEAT
        INSERT INTO GoodTable (col1, col2)
          SELECT col1, strSplit(col2, ',', i) FROM BadTable
          WHERE strSplit(col2, ',', i) IS NOT NULL;
        SET i = i + 1;
        UNTIL ROW_COUNT() = 0
      END REPEAT;
    END $$
    
    DELIMITER ;
    



    1. Pythonを使用したMySQLへの接続

    2. バイナリデータをディスクに保存するスクリプト

    3. DockerでのMariaDBMaxScaleロードバランシング:管理:パート2

    4. SQLServerで「代わりの」トリガーを作成する