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

区切り文字で文字列を分割するためのmySQLストアドプロシージャ

    SETを「;」で終了する必要がありますそして、クライアントが解釈することを考えると;区切り文字として、実際の;を入力できるように区切り文字を変更する必要があります。手順に。

    mysql> delimiter //
    mysql> CREATE PROCEDURE SPLIT(IN strToSplit text, IN strDelimiter varchar(1), IN nPartToGet int,OUT strSlice varchar(255))
        -> BEGIN
        -> SET strSlice = replace(substring(substring_index(strToSplit, strDelimiter,
        -> nPartToGet),     length(substring_index(strToSplit,strDelimiter, 
        -> nPartToGet - 1)) + 1), strDelimiter, '');
        -> END
        -> //
    Query OK, 0 rows affected (0.01 sec)
    mysql> delimiter ;
    mysql> CALL SPLIT('1;2;3;4;5',';',3,@str);
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT @str;
    +------+
    | @str |
    +------+
    | 3    |
    +------+
    1 row in set (0.00 sec)
    

    関連するドキュメント: http://dev.mysql.com/ doc / refman / 5.0 / en / Stored-routines.html




    1. EntityFrameworkがテンポラルテーブルで機能しない

    2. MYSQL-テーブルの更新後の内部結合

    3. MySQL NDBクラスターの実装の制限は何ですか?

    4. fpdfエラーとビューテーブルエラー