自定義返回出來的是什么值?
自定義返回的是什么值?ASCII還是他的什么值i?
這是表:
mysql> SELECT * FROM test;
??? -> //
+------+------+--------+
| id?? | name | typeid |
+------+------+--------+
|??? 1 | 22?? |????? 1 |
|??? 2 | 11?? |????? 1 |
|??? 3 | 44?? |????? 3 |
+------+------+--------+
3 rows in set (0.16 sec)
這是自定義函數:
CREATE FUNCTION
??? -> myfstfun_2(in_id VARCHAR(20),in_str1 VARCHAR(20),in_str2 VARCHAR(20))
??? -> RETURNS VARCHAR(5)
??? -> BEGIN
??? -> DECLARE int_1 INT;
??? -> DECLARE int_2 INT;
??? -> IF (in_id IS NOT NULL) THEN
??? -> SELECT typeid INTO int_1
??? ->? FROM test
??? ->? WHERE id=in_id AND name=in_str1;
??? -> SELECT typeid INTO int_2
??? ->? FROM test
??? ->? WHERE id=in_id AND name=in_str2;
??? ->? END IF;
??? -> RETURN int_1 + int_2;
??? ->? END//
這是返回值:
mysql>? SELECT myfstfun_2('4','4','2');
??? -> //
+-------------------------+
| myfstfun_2('4','4','2') |
+-------------------------+
| NULL??????????????????? |
+-------------------------+
1 row in set (0.03 sec)
為什么是null?
表示還沒怎么弄懂!?。∏蠼?,謝謝!
2016-11-17
你首先判斷的就是ID不為空的時候,你數據表里面只有三條數據,id最大值是3,但是你卻傳進去一個4去找,肯定找不到呀,myfstfun_2('2','4','2'),這樣試試