我有一张名为course offerings
的表格。在此表格中,您会发现每个课程分别包含course_start_date
和course_end_date
。我还使用名为course_status
的枚举字段。每个课程IN SESSION
或Closed
有两种可能的状态,但不是两者。如果通过Closed
传递状态,我怎样才能创建一个将状态更改为course_end_date
的查询? SQLFIDDLE
CREATE TABLE course_offerings
(
id int auto_increment primary key,
course_name varchar(20),
course_start_date date,
course_end_date date,
course_status enum('CLOSED','IN SESSION')
);
INSERT INTO course_offerings
(course_name, course_start_date, course_end_date, course_status)
VALUES
('Math', '2013-02-20', '2014-02-20', 'IN SESSION'),
('Science', '2013-02-20', '2014-04-18', 'IN SESSION');
答案 0 :(得分:1)
我不知道是否有一种动态的方式来做你正在尝试的事情。
这个简单的SQL查询可以帮助您更新这些记录:
UPDATE course_offerings
SET course_status = 'Closed'
WHERE course_end_date < SYSDATE
答案 1 :(得分:0)
试试这个
UPDATE course_offerings
SET course_status = 'Closed'
WHERE course_end_date = "passed_date";
答案 2 :(得分:0)
试试这个: -
update course_offerings set course_status='Closed' where course_end_date<str_to_date('2014-02-02','%Y-%m-%d');