SQL:对所有行执行相同的操作

时间:2013-08-23 08:01:26

标签: mysql sql loops row

我正在使用MySQL,并且我有一列日期被错误地输入到数据库中。更具体地说,它们以dd / mm / yy输入,但MySQL假设它们的格式为yyyy / mm / dd。我做了以下代码来纠正这个问题,但是有一个错误声明第一行中的子查询返回多行。如何让它在每一行上执行此操作?我需要一个循环吗?

SET @raw_date = (SELECT j.a_date FROM tbl_job j);

SET @first = SPLIT_STR(@raw_date, '-', 1);
SET @second = SPLIT_STR(@raw_date, '-', 2);
SET @third = SPLIT_STR(@raw_date, '-', 3);

SET @first = (SELECT RIGHT(@first, 2));

SET @job_date = CONCAT(@third,'-',@second,'-',@first);

UPDATE tbl_job
SET tbl_job.a_date = @job_date;

1 个答案:

答案 0 :(得分:2)

SELECT j.a_date FROM tbl_job 
UPDATE tbl_job
SET tbl_job.a_date = @job_date

消除WHERE子句,它将更新所有行......