我创建了一个带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
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.