gpt4 book ai didi

mysql - 在 mysql IF 语句中使用局部变量

转载 作者:行者123 更新时间:2023-11-29 05:13:06 25 4
gpt4 key购买 nike

我修改了下面的语句,但是在DECLARE语句那一行仍然出错。

开始声明搜索结果 int(11);SET searchresult=(Select count(*) from wbsimsynuqsql where SimBase='a cappella');如果搜索结果 >0 那么 Select * from simsyn1sql where BaseID = (Select Distinct BaseID from wbsimsynuqsql where SimBase='a cappella')别的 Select * from simsyn1sql where BaseID = (Select Distinct BaseID from wbsimsynuqsql where SimSyn='a cappella')

如果结束;结束

我在 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 而不是 =

sqlfiddle

关于mysql - 在 mysql IF 语句中使用局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36817388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com