Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rozdzielanie ciągów znaków MySQL za pomocą przecinka

mam odpowiedź

Najpierw utwórz nową funkcję

<>CREATE FUNCTION SPLIT_STR(x VARCHAR(255), delim VARCHAR(12), poz.INT)RETURNS VARCHAR(255)RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, poz),LENGTH(SUBSTRING_INDEX(x, delim, poz -1)) + 1), delim, '');

Następnie utwórz procedurę składowaną

DELIMITER;;CREATE PROCEDURE Split(in fullstr varchar(255))BEGIN DECLARE a INT Default 0; ZADEKLARUJ str VARCHAR(255); DROP TABLE IF EXISTS my_temp_table; CREATE tymczasowa TABELA my_temp_table(ID INT AUTO_INCREMENT NOT NULL, tekst opisu, klucz podstawowy (ID)); simple_loop:ZESTAW PĘTLI a=a+1; USTAW ciąg=SPLIT_STR(pełny ciąg,",",a); IF str='' TO OPUŚĆ simple_loop; KONIEC JEŚLI; #Do Wstawia do tabeli tymczasowej tutaj z ciągiem przechodzącym do wiersza wstaw do my_temp_table (opis) wartości (str); KONIEC PĘTLI simple_loop; wybierz * z my_temp_table;END 

Po tym, kiedy wywołam to przez call Split('asas,d,sddf,dfd'); daje mi to, czego chcę.

Dzięki za każdą sugestię.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można zainstalować mysqlclient w virtualenv na nowym Macu

  2. Kalendarz rezerwacji Daty przyjazdu i wyjazdu

  3. jak zainstalować mysqli na serwerze Windows iis?

  4. MySQL - Znajdź wiersze pasujące do wszystkich wierszy z połączonej tabeli

  5. mysql SELECT z preferencjami warunku