从 SQL 存储过程以整数形式返回默认值



我有一个选择语句,例如将行返回为 int,

我有一个 if else,如果找不到行,我会返回 -1 作为一行。

现在,如果找到该行,则以

int 形式返回该值,而当找不到行时,则以 LONG 返回。

我已经在 C# 中将返回的值转换为 DataRow

IF EXISTS(SELECT 1 FROM STS st WHERE st.plugin_id = plugin_id)
    THEN
    SELECT id FROM STS st WHERE st.plugin_id= plugin_id AND st.channel_id = channel_id LIMIT 1;
    ELSE 
      SELECT -1 int(50) AS "id";
    end IF;
END
在 IF 语句中,行"id"的值是

int 类型,其中 else 语句中 "id" 的值是 long 类型。 基本上我需要类型转换。

2 种解决此问题的方法,

1.

使用数据类型将值声明为默认值。

DECLARE DefaultResponse INT DEFAULT -1;

阿拉伯数字。

投射到未签名。

SELECT CAST(-1 AS UNSIGNED)

最新更新