CREATE DEFINER=`root`@`localhost` PROCEDURE `SampleProc`()
BEGIN
DECLARE X INT;
SET X = 1;
WHILE X <= 1890 DO
SET @paperid=(SELECT PaperID FROM scrpd_paper_authors WHERE AuthorID=X);
SELECT AuthorID FROM scrpd_paper_authors WHERE [email protected]
SET X = X + 1;
END WHILE;
END$$
DELIMITER ;
mytable scrpd_paper_authrs
ID co_authors PaperID AuthorId
==== ========= ========= ========
1 1 1
2 2 2
3 3 3
4 3 4
5 3 5
mytable(expected result)
ID co_authors
===== ==========
1 0
2 0
3 4,5
4 3,5
5 3,4
Итак, теперь AuthorID имеет несколько строк. Я хочу, чтобы вставить эти строки в таблице, используя ИНЕКЕ, но я получаю эту ошибку:Сохранение нескольких результатов из хранимых процедур в поле в mysql
"subquery returns more than one row"
Например, если я получаю 1,2,3 результаты по использованию избранных, я хочу, чтобы они были сохранены в mytable (co_authors) как 1,2,3, где ID = 1. co_authors - это имя столбца.
Я никогда не использовал курсор, не могли бы вы рассказать мне, как это точно работает и синтаксис – Shahzaib
http://dev.mysql.com/doc/refman/5.0/en/cursors.html то, что вам нужно. – Alex
может указывать курсор в цикле while, потому что, как показано в коде, мне нужно значение x для изменения на каждой итерации – Shahzaib