【发布时间】:2012-07-11 07:14:57
【问题描述】:
我有一个小而简单的 MySQL 代码。但是每当我运行它时,我都会收到错误 #1064。你能告诉我我的错误是什么吗?
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
BEGIN
SELECT * FROM tbl_cities;
END
END IF
我还使用了一些其他条件,如以下条件,但我再次遇到错误。
IF (1=1) THEN
BEGIN
SELECT * FROM tbl_cities;
END
END IF
我真正想做的是这样的:
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
BEGIN
UPDATE ...
END
ELSE
BEGIN
INSERT ...
END
END IF
【问题讨论】:
-
您是在编写查询还是程序?这真的不是一回事。
-
您在这里的实际目标是什么?如果 tbl_states 表不包含 id 字段具有非空值的记录,您是否真的想在不同的表上执行 INSERT?因为这就是您的代码所暗示的。或者,进行一个逻辑飞跃,您是否真的尝试更新具有指定 id 的行(如果存在),否则插入它?
-
那么恐怕它会变得非常复杂,我们需要有关您的表的更多信息。但是您还应该考虑这种工作的程序并查看 manurajhada 的回答 :)
标签: mysql syntax if-statement