在 SQL 中,没有内置的 foreach
循环来遍历表
首先,创建一个存储过程:
DELIMITER //
CREATE PROCEDURE ProcessTable()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE current_id INT;
DECLARE cur CURSOR FOR SELECT id FROM your_table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur INTO current_id;
IF done THEN
LEAVE read_loop;
END IF;
-- 在这里处理每一行,例如更新或删除操作
UPDATE your_table SET some_column = 'new_value' WHERE id = current_id;
END LOOP;
CLOSE cur;
END //
DELIMITER ;
然后,调用该存储过程以遍历表并对每一行进行操作:
CALL ProcessTable();
请注意,将 your_table
替换为实际的表名,并根据需要修改 UPDATE
语句。