sql >> Databáze >  >> RDS >> Mysql

Uložená procedura mySQL pro rozdělení řetězců pomocí oddělovače

Musíte ukončit svůj SET znakem ';' a vzhledem k tomu, že klient vykládá; jako oddělovač musíte změnit oddělovač, abyste mohli zadat skutečný; do postupu.

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)

Relevantní dokumenty:http://dev.mysql.com/ doc/refman/5.0/en/stored-routines.html




  1. Vytvoření CTE v Oracle

  2. Počet atributů hledání tváří

  3. Výkon MySQL:více tabulek vs. index na jedné tabulce a oddílech

  4. Jak vyladit nebo otestovat výkon kódu PLSQL v Oracle D2k Forms