Mysql 存储过程中如何判断Cursor中结果集是否为空

Mysql 存储过程中如何判断Cursor中结果集是否为空,第1张

0 通过定义一个上下文管理者(即declare continue handler)来实现

必须在游标定义后定义,并通过使用一个辅助变量来进行判断。

1 示例如下:

delimiter $

drop procedure if exists curdemo $

CREATE PROCEDURE curdemo(pid int)

BEGIN

DECLARE notfound INT DEFAULT 0 #定义一个辅助变量用于判断

DECLARE a int #定义游标输出值赋予的变量

DECLARE cur1 CURSOR FOR SELECT id FROM test.t where id= pid #定义游标

DECLARE CONTINUE HANDLER FOR NOT FOUND SET notfound = 1 #定义declare continue handler,这个会根据上下文是否有结果判断是否执行SET notfound = 1

OPEN cur1

FETCH cur1 INTO a

if notfound = 1 then

select 'no result'

#写业务逻辑

ELSE

select concat('result:', a)

#写业务逻辑

end if

CLOSE cur1

END

$

delimiter

call curdemo(240)

判断方法: if ISNULL(aBegBalRule) || LENGTH(trim(aBegBalRule))<1 THEN ELSE END IFNULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 *** 作符例如=、<或!=。为了说明它,试试下列查询: mysql>SELECT 1 = NULL, 1 <>NULL, 1 <NULL, 1 >NULL+----------+-----------+----------+----------+ | 1 = NULL | 1 <>NULL | 1 <NULL | 1 >NULL | +----------+-----------+----------+----------+ 返回信鸽网顶部| NULL | NULL | NULL | NULL | +----------+-----------+----------+----------+ 很显然你不能通过这些比较得到有意义的结果。相反使用IS NULL和IS NOT NULL *** 作符: mysql>SELECT 1 IS NULL, 1 IS NOT NULL+-----------+---------------+ | 1 IS NULL | 1 IS NOT NULL | +-----------+---------------+ | 0 | 1 | +-----------+---------------+ 请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。 返回信鸽网顶部对NULL的特殊处理即是在前面的章节中,为了决定哪个动物不再是活着的,使用death IS NOT NULL而不使用death != NULL的原因。 在GROUP BY中,两个NULL值视为相同。 执行ORDER BY时,如果运行 ORDER BY ... ASC,则NULL值出现在最前面,若运行ORDER BY ... DESC,则NULL值出现在最后面。 NULL *** 作的常见错误是不能在定义为NOT NULL的列内插入0或空字符串,但事实并非如此。在NULL表示"没有数值"的地方有数值。

值来进行判断。

很简单的,给一个例子。

php利用

empty函数

判断MySQL表单是否为空

方法一:$sql=select*formabc$result=MySQL_query($sql)$row=MySQL_fetch_array($result)if(empty($row))//开始判断是够为空{echonull}else{echonotnull}php利用empty函数判断MySQL表单是否为空

方法二:$sql=select*formabc$result=MySQL_query($sql)$row=MySQL_fetch_array($result)if(!$row)//开始判断是够为空{echonull}else{echonotnull}其实MySQL_fetch_

array函数

在使用的时候如果表是空表的话,就会返回false,这个时候$row自然没有赋值成功。记住源码天空

,千万不敢这样用$row=mysql_fetch_array

如果后面哟or

die的话,则程序执行到mysql_fetch_array变会终止执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7315351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存