mysql存储过程,是什么原因导致我下面的条件判断语句不成立?

yellingf 2019-05-22 11:20:41
单个查询结果为6

条件判断语句如此写不执行此条件下的代码



...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2019-05-27
  • 打赏
  • 举报
回复
建议贴出存储过程的全部文本(或一些关键性的代码),大家好帮你分析。
leo_lesley 2019-05-27
  • 打赏
  • 举报
回复


-- 你的语法不对
if exists(select count(1) from move_in where dno=101101 having count(1) = 6)
select 'a'
else
select 'b'

yellingf 2019-05-27
  • 打赏
  • 举报
回复
11111111111111111
yellingf 2019-05-27
  • 打赏
  • 举报
回复
我服了,这个查询语句是
if elseif................................
else和if要连着写,elseif,我服了,我真的,服了。
yellingf 2019-05-27
  • 打赏
  • 举报
回复

DROP PROCEDURE IF EXISTS pay_cost;
DELIMITER //
CREATE PROCEDURE pay_cost(sno INT,dno INT,cost INT) #传入学号sno,宿舍号dno,缴费金额cost
BEGIN
IF (SELECT COUNT(*) FROM move_in m WHERE m.dno=dno)=6 THEN
SELECT '宿舍已满员,缴费失败!'缴费结果; #这里为什么一定要加封号
ELSE IF cost<1200 THEN
SELECT '缴费失败!金额小于1200..'缴费结果;
#ELSE IF cost>=1200 THEN
#INSERT INTO move_in VALUES(sno,dno,1200);
#SELECT '缴费成功!'缴费结果;
END IF;
END //
DELIMITER ;

所有else if去掉就能运行,加了else if就不行,是语法结构问题吗,原问题的判断是成立的,测试过了。
yellingf 2019-05-27
  • 打赏
  • 举报
回复
引用 3 楼 leo_lesley 的回复:


-- 你的语法不对
if exists(select count(1) from move_in where dno=101101 having count(1) = 6)
select 'a'
else
select 'b'



DELIMITER //
CREATE PROCEDURE pay_cost(sno INT,dno INT,cost INT) #传入学号sno,宿舍号dno,缴费金额cost
BEGIN
IF EXISTS(SELECT COUNT(1) FROM move_in m WHERE dno=m.dno HAVING COUNT(1)=6)
SELECT '宿舍已满员';
END IF;
END //
DELIMITER ;

这里有语法错误吗?
yellingf 2019-05-26
  • 打赏
  • 举报
回复
11111111没人吗

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧