Mysql 带有if语句的过程中出现未知列错误

Mysql 带有if语句的过程中出现未知列错误,mysql,Mysql,当我调用此存储过程时,它显示错误:未知列 BEGIN if ( `LastRow.Transaction`=4 and `LastRow.Xre`>1) then SELECT sleep(2); END if; end 请注意,sleep(2)只是演示在条件为真的情况下如何操作。根据特定记录的值完成测试的正确方法是什么?在上面的示例中,表(实际上是一个视图)只有一行。Q:根据特定记录的值完成测试的正确方法是什么 如果您的意思是,基于存储在表的一行中的列中的值。。。似

当我调用此存储过程时,它显示错误:未知列

BEGIN
  if (
  `LastRow.Transaction`=4 and `LastRow.Xre`>1)
  then
  SELECT
  sleep(2);
END if;
end

请注意,
sleep(2)
只是演示在条件为真的情况下如何操作。根据特定记录的值完成测试的正确方法是什么?在上面的示例中,表(实际上是一个视图)只有一行。

Q:根据特定记录的值完成测试的正确方法是什么

如果您的意思是,基于存储在表的一行中的列中的值。。。似乎我们需要一个查询来引用检索存储在该行中的值的表。然后我们可以在程序中得到这些值

例如

BEGIN
   -- local procedure variables, specify appropriate datatypes
   DECLARE lr_transaction BIGINT DEFAULT NULL;
   DECLARE lr_xre         BIGINT DEFAULT NULL;

   -- retrieve values from columns into local procedure variables
   SELECT `LastRow`.`Transaction` 
        , `LastRow`.`Xre`
     INTO lr_transaction
        , lr_xre
     FROM `LastRow`
    WHERE someconditions
    ORDER BY someexpressions
    LIMIT 1
   ;

   IF ( lr_transaction = 4 AND lr_xre > 1 ) THEN
      -- do something
   END IF;
END$$

这是一个如何从表中检索行并进行检查的示例。我们也可以使用SQL进行检查,只返回一个布尔值

BEGIN
   -- local procedure variables, specify appropriate datatypes
   DECLARE lb_check TINYINT(1) UNSIGNED DEFAULT 0;

   -- retrieve values from columns into local procedure variables 
   SELECT IF(`LastRow`.`Transaction` = 4 AND `LastRow`.`Xre` > 1,1,0)
     INTO lb_check
     FROM `LastRow`
    WHERE someconditions 
    ORDER BY someexpressions
    LIMIT 1
   ;

   IF ( lb_check ) THEN
      -- do something
   END IF;
END$$

Thx,现在我明白了,
如果。。。如果
代码需要从sql语句获取其值的变量,则结束。