我有下表,在MySQl 5.5.50中命名为“类别”,在Ubuntu 14.04中运行。 第一行是列名。
id, category_id, local_code,category
'1', 'cat1', 'lcl1', 'general 1'
'2', 'cat1', 'lcl1', 'general 2'
'3', 'cat2', 'lcl2', 'general 3'
'4', 'cat3', 'lcl3', 'general 4'
然后我有以下简单的存储过程:
CREATE PROCEDURE `test`(
in category_code varchar(20))
BEGIN
declare catcode varchar(20);
set catcode = category_code;
select count(id) as dummy
from categories
where category_code = catcode;
END
当我这样跑的时候;呼叫测试('cat1“');我明白了
虚拟
4
但是我希望'dummy'得到0,因为表中不存在“category_code”。 当我使用“category_code”运行它时,我得到了相同的错误结果
我做错了什么?
答案 0 :(得分:0)
也许是因为你使用相同的名字" category_code"作为参数以及列名称。也许您可以尝试将其更改为其他名称,如categ_code?