我有两个表:
people_en: id, name
people_es: id, name
(请不要担心规范化问题。设计已经规范化。表格比这个复杂得多,但这只是简化我的问题的一种方法).
然后我有一个存储过程:
CREATE PROCEDURE myproc(lang char(2))
BEGIN
set @select = concat('SELECT * FROM ', lang, ' limit 3');
PREPARE stm FROM @select;
EXECUTE stm;
DEALLOCATE PREPARE stm;
SET @cnt = FOUND_ROWS();
SELECT @cnt;
IF @cnt = 3 THEN
//Here I need to loop through the rows
ELSE
//Do something else
END IF;
END$$
大致上,该过程中的逻辑为:
如果选择语句返回了3行,则我们需要遍历这些行并对每一行中的值进行操作。 否则,执行其他操作(不重要,但我这么说是为了让您理解,在循环之前需要有一个if语句)。
我已经看过和阅读了关于游标的内容,但没有找到太多关于由concat创建的选择语句(这有关系吗?) 特别是在使用预处理语句时。我该如何迭代结果列表并使用每行的值? 谢谢。