MySQL提供错误的查询结果

时间:2017-03-06 12:41:49

标签: mysql stored-procedures

我有下表,在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”运行它时,我得到了相同的错误结果

我做错了什么?

1 个答案:

答案 0 :(得分:0)

也许是因为你使用相同的名字" category_code"作为参数以及列名称。也许您可以尝试将其更改为其他名称,如categ_code?