我有一个选择语句,例如将行返回为 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)