投票系统 SQL存储过程 MYSQL遇到的一些问题.
2009-03-23 20:24
381 查看
@author songfeng
1,预处理语句EXECUTE STMT USING 变量名必须是用户定义变量(@变量名);
2,不能用变量代替PREPARE 内的 表名, 列名, 用CANCAT方式连接可以解决;
完整语句.
1,预处理语句EXECUTE STMT USING 变量名必须是用户定义变量(@变量名);
2,不能用变量代替PREPARE 内的 表名, 列名, 用CANCAT方式连接可以解决;
完整语句.
delimiter // CREATE PROCEDURE vote_post(para_archive_id INT, para_star INT, para_time INT) BEGIN DECLARE voteNum INT; SET @starName=concat('star', para_star); SET @archive_id = para_archive_id; SET @star = para_star; SET @time = para_time; SELECT COUNT(archive_id) INTO voteNum FROM `vote` WHERE `archive_id`=@archive_id; IF voteNum > 0 THEN SET @s = concat("UPDATE LOW_PRIORITY `vote` SET ", @starName, "=", @starName, "+ 1, `average`=((`star1` * 1) + (`star2` * 2) + (`star3` * 3) + (`star4` * 4) + (`star5` * 5))/(`star1` + `star2` + `star3` + `star4` + `star5`) WHERE archive_id=?"); PREPARE stmtSql FROM @s; EXECUTE stmtSql USING @archive_id; ELSE SET @s = concat("INSERT DELAYED INTO `vote`(`archive_id`,", @starName, ", `average`, `dateline`) VALUE(?, 1, ?, ?)"); PREPARE stmtSql FROM @s; EXECUTE stmtSql USING @archive_id, @star, @time; END IF; END delimiter ;
相关文章推荐
- 以前遇到的一些小问题,grub,编译kernel喝mysql的字符设置
- mysql关于排序遇到的一些问题
- 自己总结遇到的mysql的一些问题
- 投票系统的Mysql存储过程遇到的一些问题.
- MySQL windows下安装一些遇到的的问题
- mysql 主主同步遇到的问题,及一些参数说明
- mysql-5.7.18-winx64安装过程遇到的一些问题
- 2016年搭建nginx+php+mysql遇到的一些问题
- mysql 关于查询时间的中工作中遇到的一些问题 有代表性的
- linux下的安装mysql与遇到一些常见问题的解决方法
- wordpress迁移以及遇到的一些问题[mysql备份导入导出][固定链接404]
- mysql遇到的一些问题
- Hibernate | Spring JPA | MySQL 使用过程遇到的一些问题
- redhat 6/Centos 6下部署MySQL 5.6时遇到的一些问题
- sql语句之表间字段值复制遇到的一些问题--基于mysql
- 使用MySQL-MMM时遇到的一些问题(1)
- 总结python+Django+mysql项目遇到的一些问题
- Ubuntu Server9 + Tomcat + mysql + Jdk 安装后遇到的一些常见问题
- linux部署nginx,tomcat,mysql遇到的一些问题
- 关于mysql添加用户和删除用户遇到的一些问题