在 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
语句。