mysql在同一程序中使用返回值

时间:2014-01-10 06:54:50

标签: mysql

我的查询执行并返回一个值,我需要在同一个程序中使用返回值,如何使用它?

我的代码是

  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  ;

这里我需要在条件

中使用@xcount
IF xcount > 0 and xcount<>NULL THEN
   DELETE from table_name where issueNumber='30030' and ISSNcode='112640402' ;
 END IF  ;

1 个答案:

答案 0 :(得分:1)

您刚刚在变量名称之前忘记了@,因为您正在处理用户(会话)变量。您的IF声明应该是这样的

IF @xcount > 0 THEN
   ^

由于NULL始终返回值,因此您无需检查COUNT()

这是 SQLFiddle 演示


现在在发布DELETE之前对记录存在进行此类检查没有意义。 如果WHERE语句的DELETE子句中没有匹配条件的行,则它不会执行任何操作,也不会产生任何错误。

因此,你可以抛弃除DELETE语句之外的所有代码。