我有一个简单的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
答案 0 :(得分:6)
如果是您正在撰写的程序,请尝试:
BEGIN
IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
SELECT * FROM tbl_cities;
END IF
END
如果是查询,BEGIN
和END
无关。
修改强>
嗯,没有什么可说的,IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN SELECT * FROM tbl_cities; END IF
根本就不尊重基本的MySQL SELECT statement。
您应该从SELECT
......等开始......
答案 1 :(得分:1)
我想你只需要这个:
SELECT * FROM tbl_cities WHERE EXISTS (SELECT * FROM tbl_states)
答案 2 :(得分:0)
可能有帮助:
SELECT * FROM tbl_cities WHERE (SELECT count(1) FROM tbl_states)>0
答案 3 :(得分:0)
SELECT * FROM test2 where (select count(*) from test) > 0;
在这里,您需要使用CASE来创建条件执行。 试试这个..
CASE WHEN ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
BEGIN
UPDATE ...
END
ELSE
BEGIN
INSERT ...
END
END