sql - MySQL 存储过程 : Boolean Logic in IF THEN

标签 sql mysql stored-procedures

我正在寻找在 IF THEN 语句中使用逻辑运算符的正确语法(如果这在 MySQL 存储过程中可行)。这是我想做的事情,但我不确定我应该输入“OR”还是“||”在 IF ... THEN 子句中:

DELIMITER $$

CREATE PROCEDURE `MyStoredProc` (_id INT)
BEGIN

  DECLARE testVal1 INT DEFAULT 0;
  DECLARE testVal2 INT DEFAULT 0;

  SELECT value1, value2 INTO testVal1, testVal2 
    FROM ValueTable 
   WHERE id = _id;

 IF testVal1 > 0 OR testVal2 > 0 THEN

   UPDATE ValueTable 
      SET value1 = (value1+1) 
    WHERE id=_id;

 END IF;

END$$

最佳答案

我刚刚尝试了您的程序以确保它有效,而且确实如此。此外,您应该考虑指定变量类型的长度,例如。 INT(10).

OR|| 运算符都是正确的(如 Reference Manual 中所述)。

关于sql - MySQL 存储过程 : Boolean Logic in IF THEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821586/

相关文章:

sql - 如何在 SQL 查询中获得某些记录没有值的列

mysql - 未使用带有 ID 的Where子句时没有结果集

mysql - 获取所有关联记录都具有属性的记录

mysql - 从 SQL 结果中删除重复项并显示其他列

c# - 每个小查询的存储过程与硬编码的 sql 查询

Android Sqlite 查找和替换部分字符串

php - 为什么sql给我错误 "Invalid parameter number: parameter was not defined"

c# - 无法通过 C# 中的存储过程在可空列中插入空值

大连接上的 MySQL 重复条目检测

sql-server - 如何减少 SQL Server 中并发 DELETE 和 INSERT 到单个表期间的阻塞