必须在游标定义后定义,并通过使用一个辅助变量来进行判断。
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变会终止执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)