mysql语法不好用呀,if判断都过不了

时间:2021-03-16 16:14:06
需要完成的简单功能:

C语法:
if(true)
  printf("为真");
else
  printf("为假");

mysql语法:
if true then
   select '为真';
else
   select '为假';
end if
但是错的,谁知道呀?

6 个解决方案

#1


你的代码贴出来,提示什么

#2


if true then
   select '为真';
else
   select '为假';
end if
--------------------
[SQL] if true then
   select '为真';
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if true then
   select '为真'' at line 1

#3


是在SP中?MYSQL不支持匿名块
delimiter $$
create procedure dd()
begin
if true then 
...
else
...
end if;
end$$
delimiter ;

#4


这种语句只能在存储过程或者函数里面使用 不能像sqlserver一样单独执行

#5


MYSQL支持IF THEN, 但这种非SQL语句,过程语句只能写在MYSQL的存储过程中。 毕竟MYSQL与SQL SERVER是不一样的。

#6


mysql > DELIMITER //  
mysql > CREATE PROCEDURE proc2(IN parameter int)  
     -> begin 
     -> declare var int;  
     -> set var=parameter+1;  
     -> if var=0 then 
     -> insert into t values(17);  
     -> end if;  
     -> if parameter=0 then 
     -> update t set s1=s1+1;  
     -> else 
     -> update t set s1=s1+2;  
     -> end if;  
     -> end;  
     -> //  
mysql > DELIMITER ; 

#1


你的代码贴出来,提示什么

#2


if true then
   select '为真';
else
   select '为假';
end if
--------------------
[SQL] if true then
   select '为真';
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if true then
   select '为真'' at line 1

#3


是在SP中?MYSQL不支持匿名块
delimiter $$
create procedure dd()
begin
if true then 
...
else
...
end if;
end$$
delimiter ;

#4


这种语句只能在存储过程或者函数里面使用 不能像sqlserver一样单独执行

#5


MYSQL支持IF THEN, 但这种非SQL语句,过程语句只能写在MYSQL的存储过程中。 毕竟MYSQL与SQL SERVER是不一样的。

#6


mysql > DELIMITER //  
mysql > CREATE PROCEDURE proc2(IN parameter int)  
     -> begin 
     -> declare var int;  
     -> set var=parameter+1;  
     -> if var=0 then 
     -> insert into t values(17);  
     -> end if;  
     -> if parameter=0 then 
     -> update t set s1=s1+1;  
     -> else 
     -> update t set s1=s1+2;  
     -> end if;  
     -> end;  
     -> //  
mysql > DELIMITER ;