mysql将查询结果写入变量,存储过程

我想把数据库里的表中的一个字段,8位数字,不够8位的前补0补足8位,大家有什么好办法呀,例 88 做成00000088
mysql把某个字段前补0怎么操作,
不用使用过程吧
select lpad(colname,8,'0') from tablename
这样应该可以

mysql 中有没有函数可以把整数转换为字符串
例如把 123 转换为 '123'
select convert(123,char(3))
select cast(123 as char(12))
select cast(123 as char(3))

DROP PROCEDURE IF EXISTS proc_addacc; 
delimiter //
CREATE PROCEDURE proc_addacc(IN sourceip VARCHAR(23),IN loop_times INT,IN dstip VARCHAR(23),IN loop2 INT) 
BEGIN 
DECLARE var INT DEFAULT 0; 
DECLARE var2 INT DEFAULT 0;
DECLARE acc VARCHAR(400);
DECLARE stime VARCHAR(30);
DECLARE vsip BIGINT DEFAULT 0;
DECLARE cou BIGINT DEFAULT 0;  
DECLARE vdip BIGINT DEFAULT 0;
select inet_aton(sourceip) into vsip;
select inet_aton(dstip) into vdip;
WHILE var2<loop2 DO 
SET var2=var2+1;
SET vdip=vdip+1; 
SET var=0; 
WHILE var<loop_times DO
SET cou=cou+1;
SET cou=cou%1000;   
SET var=var+1; 
SET vsip=vsip+1;
select concat(DATE_FORMAT(now(),'%Y%m%d%H%i%S'),convert(lpad(cou,3,'0'),char(4))) into stime;
select concat('mskks',stime,';sdsdsdsd=3','kataer')into acc;
INSERT INTO tablename(column1,column2,column3) VALUES(acc,now(),0);
END WHILE; 
END WHILE; 
END;
 //
delimiter ; 

CALL proc_addacc('125.39.127.22',2,'220.181.138.59',2);

这里有几个疑问:1)lemon=twofold(lime);   此语句中的结构体名lime代表什么? 
 2)orange=lemon;   此语句怎么理解?
1、lime是一个结构体类型,一个构造类型!独立类型!这个类型大小就是sizeof(lime)这么大,此题中为4*100个字节!记住,这是struct类型的大小为400【固定的】,同int等类型都一样有了固定大小!400就是固定大小!
2、当一种struct类型作为参数传递后,那么他同一个内置类型传递是一样的!一个int整形传递时,拷贝了4个字节(32位系统固定大小)!同样,struct类型也要拷贝他的固定大小,400!
PS:所以很多时候,为了速度上的需要,对于构造类型,都建议传递指针(32位4个字节),因为这样传递要减少很多的拷贝!
3、对于同种的类型的构造struct类型,同内置类型一样!可以赋值!两个int整形可以赋值,同样同种struct类型也一样!这里的赋值也是对400个内存大小进行值拷贝!
希望有帮助!有错请纠正!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值