Count()无法正常工作Mysql PROCEDURE

我创建了一个带2个参数的程序并检查计数.

但是当我传递“”空白值时它仍然返回1个计数.

没有得到它为什么这样工作.

感谢下面的帮助是我的程序

DELIMITER $$

CREATE DEFINER=`dadclient`@`123.63.249.169` PROCEDURE `checkInOut`(IN grid varchar(50),OUT count INT)
begin 

select count(GRIDID) into count  from GRIDID where GRIDID=grid;
select count;

END

我打电话的时候

 checkInOut("",@aaa);
             select @aaa;

当我打电话给它时,它会给我1,这是错误的.

最佳答案

But when I pass “” blank value It still return 1 count.

因为当你通过提供一个空字符串来表示它是空白时,它就是一个值.空字符串也被视为数据库中的值,因此您将计为1

MySQL docs说:

COUNT(expr)

Returns a count of the number of non-NULL values of expr in the rows
retrieved by a SELECT statement. The result is a BIGINT value.

因此,如果您希望计数返回0,则不需要将字符串设置为空“”,而是需要将值设置为NULL.

点赞