精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容
近期开发的企业管理软件使用到了MySQL存储过程,有个存储过程功能始终有问题,select count返回0,不能判断出是否有数据行,一直添加数据。
把select count行单独拷贝出来,加上条件数据,有个数,有结果个数就觉得语句不会有问题啊。但是存储过程就是不行。
换exist判断有无,where子句还是不行。
就简化where子句,删除一些条件,发现等号右边的一个变量名写错了,写错了,编译也通过了,执行也没异常,可能是写错的变量是许可的,就是值为空,为空值判断自然是条件不成立,所以count始终返回0.
下面是错误的语句:
select count(jobplan.id) as jidd into dcount2 from jobplan where factory=dfactory and safetype=dsafetype and weekday=ptoday and starthour=@dstarhour and endhour=@dendhour;
下面是正确的语句:
select count(jobplan.id) as jidd into dcount2 from jobplan where factory=dfactory and safetype=dsafetype and weekday=ptoday and starthour=dstarthour and endhour=dendhour;
注意变量名,只差一个字。变量名问题可能在其它语句里也会出现,大家要开发存储过程要尤其注意。