千言万语也比不上一个简单直接明了的小例子:

CREATE PROCEDURE pro_users()
begin
DECLARE myid int;
DECLARE no int;
DECLARE mysellerid char(10);
DECLARE mylink char(50);
DECLARE myip char(50);
DECLARE mycursor CURSOR FOR select id from table1; #把select出来的数据全部保存到游标mycursor中
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no=1; #当读到数据的最后一条时,设置no变量为1
SET no=0; #初始化变量no为0
OPEN mycursor; #打开游标
while no=0 do #判断是不是到了最后一条数据
fetch mycursor into myid; #读取游标中的数据一一复给变量myid。
select sellerid,link,ip into mysellerid,mylink,myip
from table2 order by RAND() LIMIT 1;
update table1 set
wangba_uid = ceil(rand()*500),
wangba_sellerid = mysellerid,
wangba_link = mylink,
wangba_ip = myip
where id = myid;
end while;
close mycursor;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
end

注意了:这些声明语法必须写在存储过程里面才生效,否则navicat就提示语法错误。

完了执行一下:

call pro_users()

与sql不同,mysql执行存储过程使用call命令。

删除存储过程:

drop PROCEDURE pro_users

删除存储过程,mysql和sql一样都用drop。

其他:

select sellerid,link,ip into mysellerid,mylink,myip from table2 order by RAND() LIMIT 1;

mysql使用select into的形式给变量赋值,RAND()随机记录,LIMIT 1代替TOP 1

这句话在sql里面的写法:

select top 1 mysellerid=sellerid,mylink=link,myip=ip from table2 order by newid();

用 Navicat 写mysql的游标的更多相关文章

  1. 利用navicat写mysql的存储过程

    最近项目经理让我给新的活动的预留一个插入红包和查看详情的sql,方便在项目出问题的做一些紧急操作,我想了下这里面还涉及到挺多逻辑和挺多表的一句句查也不方便啊,干脆写到存储过程里,于是开始在navica ...

  2. 使用navicat for mysql图形界面操作数据库、使用node.js操作数据库写接口

    1.先启动MYSQL服务 2.打开navicat for mysql, 点击链接,输入如下的内容: 3.新建数据表 4.数据库(新建一个db.js) //数据库链接配置 module.exports ...

  3. Navicat可视化MySQL数据库

    Navicat可视化MySQL数据库 Navicat内部封装了所有的操作数据库的命令,用户只需要点击操作即可,无需书写sql语句. navicat能够充当多个数据库的客户端. 具体操作参考百度. py ...

  4. MySQL的下载与安装 和 navicat for mysql 安装使用

    新手上路-MySQL安装 目录结构 Windows平台 MySQL安装 示例数据导入 Linux平台 CentOS系统 Ubuntu系统 FAQ 密码生成工具-keepass 修改提示符 图形工具 删 ...

  5. MySql使用游标Cursor循环(While)更新数据

    #要修改的变量 DECLARE var_ID VARCHAR(50) DEFAULT ''; #需要修改的数据的数量 DECLARE var_UpdateCount INT; #当前循环次数 DECL ...

  6. 【mysql】利用Navicat for MySQL的使用

    1. 查看sql语句 如果忘记了某个SQL语句怎么写,可以利用Navicat for MySQL的历史日志来查看 在Navicat for MySQL中,直接对数据库进行想要的操作,然后点击工具-&g ...

  7. mysql数据库管理工具navicat for mysql怎么用

    mysql数据库管理工具navicat for mysql,对于不怎么喜欢图形界面或者不太方便使用SQL的时候.我们可以通过用这个图形界面数据库管理工具来管理mysql,本经验咗嚛就简单介绍一下怎么用 ...

  8. navicat实现Mysql数据备份

    方法/步骤     使用navicat工具连接mysql数据库,这里以navicat for Mysql工具为例.如果数据库在本机,那么连接ip处写localhost即可,如果数据库在其他机器,那需要 ...

  9. 数据库之mysql篇(4)—— navicat操作mysql

    navicat 1.简介: navicat是一个软件,旗下针对不同数据库有不同的软件版本,支持以下数据库,还是挺厉害的: 这里我采用navicat for mysql版本.实现图形化的操作mysql, ...

随机推荐

  1. Python的平凡之路(8)

    (本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...

  2. js传url中文参数乱码问题

    $("#btnKeyWord").click(function () { window.open("/Atraction/Atraction.aspx?keyword=& ...

  3. C++ using namespace std(转载)

    转载自http://www.kuqin.com/language/20080107/3532.html 感谢这位大神的解答! 以下的内容摘抄自转载的文章里面的部分内容. 早些的实现将标准库功能定义在全 ...

  4. Maven项目中的run as选项介绍

    maven install:把本项目发布到本地资源库maven package:编译.测试,然后打包项目maven test:执行测试maven clean:把该资源从本地资源库清除.在基于Maven ...

  5. fancybox 基础 简单demo

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <l ...

  6. Oracle数据库初级学习 2

    今天我们介绍Oracle数据库中剩余的查询方法,今天的查询方法会比昨天的更为复杂一些(PS:我也是个初学者,请见谅..). 一.分组函数 分组函数是为了区分同一个表中的不同数据而建立,其关键字为GRO ...

  7. mudOS源码 options.h配置详细选项

    /* options.h配置详细选项—————————————————————————-将 MudOS 下载解压以后可以在相应目录的根目录中找到 options.h 这个文件.如果修 改了这个文件,那 ...

  8. iOS的URL处理

    前两天处理iOSapp过程中(我是用swift语言写的,资料较少),被一个“字符串”搞了一晚上的时间到第二天才处理好,在此记下,望见过此文的学生有一天遇到该情况能三分钟搞定不浪费时间: 先看如下代码 ...

  9. 我的STL之旅 MyStack

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...

  10. 各种Linux发行版本优缺点对比[转]

    转自:http://www.zzbeidaqingniao.com/linux/20100127/1495.html linux最早由Linus Benedict Torvalds在1991年开始编写 ...