mysql 0函数_mysql 自定义函数 返回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啊。

这是咋回事勒!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值