在MySQL中,使用While语句循环与SQL
创新互联建站自2013年起,先为阜新等服务建站,阜新等地企业,进行企业商务咨询服务。为阜新企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
Server中有所不同,代码测试通过。
MSSQL中使用while语句循环生成数据的方法:
示例代码:
复制代码
代码如下:
declare
@a
int
set
@a
=
1
while
@a25
begin
INSERT
INTO
demotable
(id,item1,item2)
VALUES
(@a,"abc","123")
set
@a
=
@a
+
1
end
MySQL中,使用while循环处理数据方法:需要新建为存储过程,直接调用执行存储过程。
示例代码:
复制代码
代码如下:
CREATE
DEFINER=`root`@`localhost`
PROCEDURE
`NewProcedure`()
BEGIN
DECLARE
i
INT;
SET
i=1;
WHILE
i100
DO
INSERT
INTO
demotable
(id,item1,item2)
VALUES
(i,"测试试题","0");
SET
i
=
i
+
1;
END
WHILE;
END;
用递归吧,不过我不会用MySQL的语法,应该跟SQL server差不多吧
1.录入基础数据
2.执行语句与结果
delimiter $$// 定义结束符为 $$
drop procedure if exists wk; // 删除 已有的 存储过程
create procedure wk()// 创建新的存储过程
begin
declare i int;// 变量声明
set i = 1;
while i 11 do // 循环体
insert into user_profile (uid) values (i);
set i = i +1;
end while;
end $$ // 结束定义语句
// 调用
delimiter ;// 先把结束符 回复为;
call wk();
delimter : mysql 默认的 delimiter是; 告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
用存储过程就行了,给你一个能传参数的实例吧
drop procedure if exists employee;
delimiter $
create procedure employee(
IN acc int(20))
BEGIN
DECLARE i INT(11);
SET i = 0;
loop1: WHILE i=acc DO
你的sql语句
SET i=i+1;
END WHILE loop1;
end $
delimiter ;
call employee(1000)
mysql常用命令详解
mysql安装目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/init.d/mysql(启动脚本文件mysql的目录)
系统管理
连接mysql
格式:
mysql -h 主机地址 -u用户名 -p用户密码
例 1:连接到本机上的 mysql。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:连接到远程主机上的 mysql。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
这个aa就是你insert的id值.这个语句是针对当前线程的,如果别人也insert了内容,互相不会干扰.可以安全的使用你第一次执行insert后,再立刻执行一条“select last_insert_id() as aaquot。
1.如果你觉得用,select max(id) from 表名称,会和别的人产生冲突,你可以select idfrom, 表名称where ,userid=你的id,order by insertDate desc limit 1。
2.有用户写记录的表,userid这个域是应该有的,插入或者更新时间也是有的,按照时间顺序倒排以下即可。
3.如果userid和时间没有的话,个人觉得这个表的设计就不太。
delimiter $$
mysql
mysql CREATE PROCEDURE myProc() //创建while循环的存储过程 if分支语句示例
- BEGIN
-
- DECLARE i int;
- SET i=1;
- loop1: WHILE i=10 DO
- IF MOD(i,2)0 THEN /*Even number - try again*/
- SELECT CONCAT(i," is an odd number");
- END IF;
- SET i=i+1;
- END WHILE loop1;
- END$$
Query OK, 0 rows affected (0.00 sec)
这种也可以