赞
踩
一直只用增删改查,触发器、储存过程怎么写都快忘光了。
今天我在写储存过程时,查询的值一直不正确。
- BEGIN
- SET
- @count = (select sum(click_num) from music where uid = uid);
-
- insert msg(msg) value (@count);
- END
很简单的DEMO。查询字段的总和,插入到另一张表。
本应该返回21,但MYSQL一直返回23.
【解决方法】
查了很多资料,用了好几种赋值的方法。
最后猛然发现,输入值跟字段值相同!
我的SQL语句其实是这样:select ...... where 1 = 1;
修改变量名,成功!
- BEGIN
- SET
- @count = (select sum(click_num) from music where uid = select_uid);
-
- insert msg(msg) value (@count);
- END
【反思】
说明自己的SQL用的不够熟练。1=1这种经常用到的语法,应该一瞬间想到的。
另外。给变量起名字,一定要做到“见名知意”。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。