1

我正在使用 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;
4

1 回答 1

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

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

于 2013-08-23T08:02:35.243 回答