在mysql语句中使用局部变量IF语句
问题描述:
我修改了下面的语句,但仍然在DECLARE语句中出现错误。在mysql语句中使用局部变量IF语句
BEGIN DECLARE searchresult int(11); SET searchresult =(从wbsimsynuqsql选择count(*),其中SimBase ='a cappella'); IF从simsyn1sql信息搜索结果> 0 THEN 选择*,其中了baseid =(从wbsimsynuqsql SELECT DISTINCT了baseid其中SimBase = '清唱') ELSE 从simsyn1sql其中了baseid =(选择从wbsimsynuqsql其中SimSyn ='清唱鲜明了baseid选择* ')
END IF; END
我在PHPMYADMIN中使用下面的表达式,目的是稍后在PHP/MySQL应用程序中使用它。它给出了与第1行中的DECLARE语句有关的错误。
我已经看过MySQL中的示例声明,但没有看到错误,但是我做错了什么,希望得到更正/建议。
DECLARE searchresult int(11);
SET searchresult=(Select count(*) from wbsimsynuqsql where SimBase='a cappella');
IF searchresult >0
{Select * from simsyn1sql where BaseID = (Select Distinct BaseID from wbsimsynuqsql where SimBase='a cappella')}
[ ELSE
{Select * from simsyn1sql where BaseID = (Select Distinct BaseID from wbsimsynuqsql where SimSyn='a cappella')} ]
END IF;
答
DECLARE只允许一个内BEGIN ... END复合语句,并且必须是在它的开始,任何其他语句之前。 像里面CREATE PROCEDURE您可以使用DECLARE
你IF声明缺少THEN
,并去掉方括号([])和花括号({})
如果你的子查询返回不止你了baseid可能必须使用IN
,而不是=
'mysql'中没有'{'和'[']括号。你为什么放他们? – Shaharyar
@Shaharyar可能是好运或出于一厢情愿。为什么他们在没有人阅读的时候写文档? – tadman
@tadman我把这个讽刺作为一个学习曲线,发现'''在mysqlm中的用法,但仍然找不到'['。你想分享你的知识吗? – Shaharyar