4个答案 按时间排序 按投票排序
-
采纳的答案
create procedure batchUpdate(in n int) begin declare inParam int default n; declare i int default 1; declare id int; declare username varchar(255); declare integral varchar(255); declare ranking int; declare _resultSet cursor for select a.id, a.username,a.integral,a.ranking from user a order by a.integral desc limit inParam; open _resultSet; while i <= inParam do fetch _resultSet into id, username, integral,ranking; update user a set a.ranking = i where a.id = id; set i = i +1; end while; close _resultSet; end; mysql> select * from user; +----+----------+----------+---------+ | id | username | integral | ranking | +----+----------+----------+---------+ | 1 | abc | 1 | 0 | | 2 | abc | 2 | 0 | | 3 | abc | 3 | 0 | | 4 | abc | 4 | 0 | | 5 | abc | 5 | 0 | | 6 | abc | 6 | 0 | | 7 | abc | 7 | 0 | | 8 | abc | 8 | 0 | | 9 | abc | 9 | 0 | | 10 | abc | 10 | 0 | | 11 | abc | 11 | 0 | | 12 | abc | 12 | 0 | | 13 | abc | 13 | 0 | | 14 | abc | 14 | 0 | +----+----------+----------+---------+ 14 rows in set mysql> call batchUpdate(14); Query OK, 1 row affected mysql> select * from user; +----+----------+----------+---------+ | id | username | integral | ranking | +----+----------+----------+---------+ | 1 | abc | 1 | 14 | | 2 | abc | 2 | 13 | | 3 | abc | 3 | 12 | | 4 | abc | 4 | 11 | | 5 | abc | 5 | 10 | | 6 | abc | 6 | 9 | | 7 | abc | 7 | 8 | | 8 | abc | 8 | 7 | | 9 | abc | 9 | 6 | | 10 | abc | 10 | 5 | | 11 | abc | 11 | 4 | | 12 | abc | 12 | 3 | | 13 | abc | 13 | 2 | | 14 | abc | 14 | 1 | +----+----------+----------+---------+ 14 rows in set
2014年5月27日 17:42
-
drop PROCEDURE if exists dorank; delimiter // CREATE PROCEDURE dorank(IN N INT) BEGIN SET @i=0; PREPARE s1 FROM ' update tiezi as a inner join ( select @i := @i +1 as myrank, id, zan from tiezi order by zan desc limit ? ) as b on a.id=b.id set a.rank = b.myrank '; set @a=N; EXECUTE s1 USING @a; DEALLOCATE PREPARE s1; END; // delimiter ; mysql> select * from tiezi; +----+------+------+ | id | zan | rank | +----+------+------+ | 1 | 100 | 0 | | 2 | 300 | 0 | | 3 | 50 | 0 | +----+------+------+ 3 rows in set (0.00 sec) mysql> call dorank(2); Query OK, 0 rows affected (0.00 sec) mysql> select * from tiezi; +----+------+------+ | id | zan | rank | +----+------+------+ | 1 | 100 | 2 | | 2 | 300 | 1 | | 3 | 50 | 0 | +----+------+------+ 3 rows in set (0.00 sec)
2014年5月27日 17:33
-
drop PROCEDURE if EXISTS dealData;
CREATE PROCEDURE dealData()
BEGIN
DECLARE totalCount INT(10);
DECLARE i INT(10);
set totalCount =0; //记录数
set i=1;//排名
SELECT count(1) into totalCount from 表 ;
while(totalCount>0) DO
update 表 set 列=i where...;
set totalCount = totalCount-1;
set i = i +1;
end WHILE;
END;
CALL dealData();2014年5月27日 16:00
相关推荐
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!
kettle批量导出mysql存储过程,利用kettle的循环批量导出mysql 单个存储过程sql脚本,并生成命令行.source文件
利用mysql存储函数,方便快捷批量建立mysql数据库测试表
MySQL存储过程,一键批量修改一个表内的多个列(字段)类型。例如从int转换成varchar
资源包中囊括了MySQL数据库中的存储过程的使用包含的基本结构及日常所使用到的基本函数的使用【包括java端调用存储过程,创建临时表,动态执行sql语句,过程的递归调用,指针循环取数,批量创建表删除表,树状结构的...
mysql利用存储过程批量添加数据库表随机测试内容
mysql 数据库已存储过程插入一千万条测试数据!利用项目即将上限需要,可以完全系统的测试项目性能!里面又完整的文档和各项说明:打开文档就可以实际操作。
JDBC调用MySQL5存储过程[文].pdf
语言Java,数据库mysql 批量获取Blob图片下载到本地,同时设置本地保存位置
drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure() BEGIN declare my_sqll varchar(500);... 您可能感兴趣的文章:mysql 存储过程中变量的定义与赋值操作mysql存储过程详解mysq
逻辑: 将配置的所有sql 循环在每一个配置号的mysql连接-库中...2. 配置SavePath存储路径 3. 配置sql, 格式为列表格式 : sheet页名:sql 多个用,隔开 ["sheet页:sql","sheet页2:sql2"] 导出为多个sheet合并到1个文件
建立一个常规的存储过程,用于修复mysql内的批量数据
java 下执行mysql 批量插入的几种方法及用时,1000次插入方法的比较。
定时批量备份mysql数据库 保存详细的备份记录
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。 插入BLOB类型的数据必须使用PreparedStatement,因为BLOB类型的数据无法使用字符串拼接写的。 MySQL的四种BLOB类型...
批量从文本文件中读取数据存储到MySQL数据库中。
批量插入百万条数据,自定义函数,动态生成数据,伪造真实数据。
循环插入: 代码如下: DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter < 2) /*设置循环次数*/ BEGIN WAITFOR DELAY ‘000:00:10’ /*延迟时间10秒*/ INSERT INTO time_by_day (time_...
鉴于MySQL数据库的流行与强大,决定多学习...同时实现了数据库查询,BindingSource绑定控件、BindingNavigator导航控件绑定,批量数据使用BackgroundWorking异步导入功能,及进度条动态显示数据库批量操作进度等功能。