Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се свърже със сървър на база данни (работна маса на mysql)

  2. Има ли значение редът на колоните във вашите MySQL таблици?

  3. Просто, но тежко приложение, което консумира много ресурси. Как да оптимизираме?

  4. Проектиране на база данни за системата за посещаемост в училище

  5. MySQL:Предоставяне на **всички** привилегии на база данни