Ich habe den Tabellennamen "tmp1" mit den Feldern name id und comma. Komma enthält 1,3,2,4,5 Werte mit Text-Datentyp.# 1054 Unbekannte Spalte in der Feldliste in mysql Prozedur
Ich möchte separaten Wert in Schleife in meiner gespeicherten Prozedur. Wie 1 dann 3 dann 2 usw. So, ich wurde unten angegebene Prozedur erstellt.
BEGIN
DECLARE my_delimiter CHAR(1);
DECLARE split_comma text;
DECLARE done INT;
DECLARE occurance INT;
DECLARE i INT;
DECLARE id INT;
DECLARE sel_query VARCHAR(500);
DECLARE splitter_cur CURSOR FOR SELECT id,comma from tmp1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN splitter_cur;
splitter_loop:LOOP
FETCH splitter_cur INTO id,split_comma;
SET occurance = LENGTH(split_comma) - LENGTH(REPLACE(split_comma,',',''))+1;
SET my_delimiter=',';
IF done = 1 THEN
LEAVE splitter_loop;
END IF;
IF occurance > 0 THEN
SET i = 1;
WHILE i <= occurance DO
SET sel_query = "SELECT SUBSTRING_INDEX(comma,',',i) as abc from tmp1";
SET @sel_query = sel_query;
PREPARE sel_query FROM @sel_query;
EXECUTE sel_query;
SET i = i + 1;
END WHILE;
END IF;
SET occurance = 0;
END LOOP;
CLOSE splitter_cur;
END;
Aber wenn ich ausführen dieses Verfahren Fehler tritt auf "MySQL sagte: # 1054 - Unknown column 'i' in 'field list'"
Aber hier ist i eine Variable verwendet Schleife zu drehen.
Gibt es eine Lösung? Bitte helfen Sie mir ... Vielen Dank im Voraus ...