我正在尝试在 MySQL 中编写一个存储过程,它将执行一个简单的选择查询,然后循环遍历结果以确定是执行其他查询、数据转换还是完全丢弃数据。实际上,我想实现这一点:
$result = mysql_query("SELECT something FROM somewhere WHERE some stuff");
while ($row = mysql_fetch_assoc($result)) {
// check values of certain fields, decide to perform more queries, or not
// tack it all into the returning result set
}
只是,我只想要它在 MySQL 中,所以它可以作为一个过程来调用。我知道对于触发器,有FOR EACH ROW ...
语法,但我找不到在CREATE TRIGGER ...
语法之外使用类似的东西。我已经阅读了 MySQL 中的一些循环机制,但到目前为止,我所能想象的是我将实现这样的东西:
SET @S = 1;
LOOP
SELECT * FROM somewhere WHERE some_conditions LIMIT @S, 1
-- IF NO RESULTS THEN
LEAVE
-- DO SOMETHING
SET @S = @S + 1;
END LOOP
虽然这在我的脑海里有些朦胧。
作为参考,虽然我认为它不一定相关,但初始查询将连接四个表以形成分层权限模型,然后根据特定权限在链上的高度,它将检索有关的附加信息应该继承该权限的孩子。