MySQL 正确使用 if exists

标签 mysql if-statement syntax syntax-error exists

我正在制作一个检索客户端信息的过程,问题是有两种类型的客户端具有不同的属性,因此我需要根据将其与父表连接的客户端类型返回不同的查询。 .. 我做了这个,但显然我犯了一些语法错误:

delimiter &
create procedure show_Client(in id varchar(10)) 
begin 
if (exists (select ID from CLIENT_1 as C1 where id =C.ID),1,0) 
then 
begin 
select * from CLIENT_1 as C1 join CLIENT C on C1.ID=C.ID where C1.ID=id; 
end; 
else 
BEGIN 
select * from CLIENT_2 as C2 join CLIENT C on C2.ID=C.ID where C2.ID=id; 
end; 
end if; 
&

最佳答案

您没有终止您的第一个 begin

如果您一致地缩进代码,就更容易看到错误:

delimiter &

create procedure show_Client(in id varchar(10)) 
begin 
    if (exists (select ID from CLIENT_1 as C1 where id =C.ID),1,0) 
    then 
        begin 
            select * from CLIENT_1 as C1 join CLIENT C on C1.ID=C.ID where C1.ID=id; 
        end; 
    else 
        begin 
            select * from CLIENT_2 as C2 join CLIENT C on C2.ID=C.ID where C2.ID=id; 
        end; 
    end if; 
&

您需要一个与第一个 begin 缩进级别相同的最终 end

关于MySQL 正确使用 if exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26986794/

相关文章:

php curl 获取 mysql 数据 - 只返回一行

php - PHP/MYSQL对更新字段的操作

loops - 使用循环在 SPSS 中创建指标变量

javascript - 哪种 JavaScript 语法更合适?

c++ - 直接使用初始化列表初始化只有一个数组作为成员的结构是否合法?

php - Android(Corona sdk)触发的MYSQL PHP对行/列造成麻烦

java - 如何解决Hibernate-HQL中user1已经有超过 'max_user_connections'个 Activity 连接?

php - 将图像上传到文件夹中

c - 输入值和 If 语句

javascript - 为什么当语句为 true 时 JS 不会重定向网页?