MySQL-IF/THEN语句确定插入到
我正在尝试设置一个If/Then语句,该语句确定在数据库的“course”表中插入的内容。第一次插入将插入限制为6行,第二次将插入限制为7行 下面是代码的样子:MySQL-IF/THEN语句确定插入到,mysql,if-statement,Mysql,If Statement,我正在尝试设置一个If/Then语句,该语句确定在数据库的“course”表中插入的内容。第一次插入将插入限制为6行,第二次将插入限制为7行 下面是代码的样子: If @courseprogram = 'PharmTech' Then INSERT INTO course (fameid, course_id, enroll_status) SELECT @fameid fame_id, course_id, 'S' enroll_status FROM calendar
If @courseprogram = 'PharmTech' Then
INSERT INTO course (fameid, course_id, enroll_status)
SELECT @fameid fame_id, course_id, 'S' enroll_status FROM calendar
WHERE startdate >= @startdate AND program = @courseprogram ORDER BY startdate LIMIT 6;
Elseif @fullprogram = 'Medical Assisting'
INSERT INTO course (fameid, course_id, enroll_status)
SELECT @fameid fame_id, course_id, 'S' enroll_status FROM calendar
WHERE startdate >= @startdate AND program = @courseprogram ORDER BY startdate LIMIT 7;
End if
当我尝试运行此操作时,会收到以下错误消息:
错误代码:1064。您的SQL语法有错误;检查
与右边的MySQL服务器版本相对应的手册
使用接近'If@courseprogram='PharmTech'的语法,然后插入到
课程(fameid、课程id、第1行的enr
有人知道这里可能有什么问题吗
另外,我在几篇关于这个问题的帖子中读到,在MySQL中应该避免使用IF/THEN语句。有人能解释一下为什么会出现这种情况,以及如何解决这个问题吗?Hmmm…这将是在一条语句中实现这一点的一种方法:
INSERT INTO course (fameid, course_id, enroll_status)
(SELECT @fameid as fame_id, course_id, 'S' as enroll_status
FROM calendar
WHERE @courseprogram = 'PharmTech' AND
startdate >= @startdate AND
program = @courseprogram
ORDER BY startdate
LIMIT 6
) UNION ALL
(SELECT @fameid as fame_id, course_id, 'S' as enroll_status
FROM calendar
WHERE @fullprogram = 'Medical Assisting' AND
startdate >= @startdate AND
program = @courseprogram
ORDER BY startdate
LIMIT 7
);
我不是说这很优雅,只是说它解决了你的问题
注意:我猜想第二个子查询中的条件
@fullprogram='Medical Assisting'
应该是@courseprogram='Medical Assisting'
,IF
语句是一个控制流构造,它只允许在编程块中使用——存储过程、触发器和函数。