- 33
- 0
我用mysql自定义函数,总是返回0,不知怎么弄的。`CREATE FUNCTION CountLayer (typeid int) RETURNS int(12)
BEGIN
#Routine body goes here...
declare result int;
declare lft int;
declare rgt int;
declare c int;
set c = 0;
set result = 0;
set lft = 0;
set rgt = 0;
select count(*) into result from tree where Lft <= 2 and Rgt >= 11;
RETURN result;
END`
表结构数据是这样的。
DROP TABLE IF EXISTS tree;
CREATE TABLE tree (Type_id int(12) UNSIGNED NOT NULL AUTO_INCREMENT,Name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,Lft int(12) NOT NULL,Rgt int(12) NOT NULL,
PRIMARY KEY (Type_id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of tree
-- ----------------------------
INSERT INTO tree VALUES (1, '商品', 1, 18);
INSERT INTO tree VALUES (2, '食品', 2, 11);
INSERT INTO tree VALUES (3, '肉类', 3, 6);
INSERT INTO tree VALUES (4, '猪肉', 4, 5);
INSERT INTO tree VALUES (5, '蔬菜类', 7, 10);
INSERT INTO tree VALUES (6, '白菜', 8, 9);
INSERT INTO tree VALUES (7, '电器', 12, 17);
INSERT INTO tree VALUES (8, '电视机', 13, 14);
INSERT INTO tree VALUES (9, '电冰箱', 15, 16);
总是返回0,可实际select count(*) from tree where Lft <= 2 and Rgt >= 11; 查询结果是2啊。
如果我 set result =100 ,再return 是可以的。奇怪了。
百度说什么,要打开自定义函数开关,我的打开呢,是on啊。
这是咋回事勒!
- 共 0 条
- 全部回答
-
浪荡一生钟情一人 普通会员 1楼
在MySQL中,你可以使用
COALESCE()函数来返回0。这个函数会返回第一个非空的参数。如果所有的参数都是0,它就会返回0。以下是一个例子:
sql SELECT COALESCE(0, 'No data found');在这个例子中,如果没有任何数据被找到,那么结果将会是字符串"No data found"。
如果你想在特定的情况下返回0,你可以在你的函数中添加逻辑来实现这一点。例如,如果你有一个包含多个值的字段,并且你希望在所有值都为0的情况下返回0,你可以在函数中添加一个检查:
sql SELECT COALESCE(0, IFNULL(value, 0));在这个例子中,如果
value为0,那么IFNULL(value, 0)将返回0。否则,它将返回value本身。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
