我的查询执行并返回一个值,我需要在同一个程序中使用返回值,如何使用它?
我的代码是
set @table_name_count = CONCAT('SELECT COUNT(*) into @xcount ', CONCAT( ' FROM ' ) , concat( table_name),concat( ' where issueNumber=',concat('30030'),concat( ' and ISSNcode='),CONCAT('112640402')));
PREPARE statement from @table_name_count;
EXECUTE statement;
DEALLOCATE PREPARE statement;
select 'hello4' from dual;
IF xcount > 0 and xcount<>NULL THEN
DELETE from table_name where issueNumber='30030' and ISSNcode='112640402' ;
END IF ;
这里我需要在条件
中使用@xcountIF xcount > 0 and xcount<>NULL THEN
DELETE from table_name where issueNumber='30030' and ISSNcode='112640402' ;
END IF ;
答案 0 :(得分:1)
您刚刚在变量名称之前忘记了@
,因为您正在处理用户(会话)变量。您的IF
声明应该是这样的
IF @xcount > 0 THEN
^
由于NULL
始终返回值,因此您无需检查COUNT()
。
这是 SQLFiddle 演示
现在在发布DELETE
之前对记录存在进行此类检查没有意义。
如果WHERE
语句的DELETE
子句中没有匹配条件的行,则它不会执行任何操作,也不会产生任何错误。
因此,你可以抛弃除DELETE
语句之外的所有代码。