我正在使用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;
答案 0 :(得分:2)
SELECT j.a_date FROM tbl_job
UPDATE tbl_job
SET tbl_job.a_date = @job_date
消除WHERE
子句,它将更新所有行......