在 MySQL 中,可以使用循环语句 WHILE
或 REPEAT
来循环查询数据。以下是一个简单的例子:
假设有一个名为 users
的表,包含 id
和 name
两个字段,现在要循环查询所有用户的名字:
DELIMITER $$
CREATE PROCEDURE get_users()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE user_id INT;
DECLARE user_name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM users;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
get_users_loop: LOOP
FETCH cur INTO user_id, user_name;
IF done = 1 THEN
LEAVE get_users_loop;
END IF;
-- 这里可以对每一条数据进行处理,例如输出到控制台
SELECT user_name;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
然后调用存储过程 get_users()
来执行循环查询:
CALL get_users();
这样就可以循环查询 users
表中的所有用户数据。需要注意的是,循环查询可能会增加数据库的负担,尽量避免在大数据量下使用循环查询。