博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)
阅读量:6230 次
发布时间:2019-06-21

本文共 3196 字,大约阅读时间需要 10 分钟。

-- 演示将多条记录数据组合成一条sql插入语句(for mysql)function getTpl0(tname)		-- 获取表各个字段	local t = {		tpl_pack = {"packId","itemId","`group`","num","rate","rateType"},	}	for k, v in pairs(t) do		if tname == k then			return t[k]		end	endend--tpl = {3813,10,0,2,0,1,1,0,350,5,220,6,0,0,0,0,154,0,0,0,210,80,29}tpl9122 = {-- "packId","itemId","`group`","num","rate","rateType"	{9122, 3294, '', 1, 1, 2},	{9122, 3295, '', 1, 1, 2},	{9122, 3296, '', 1, 1, 2},	{9122, 3297, '', 1, 1, 2},	{9122, 3298, '', 1, 1, 2},	{9122, 9004, '', 2, 4, 2},	{9122, 117, '', 8, 4, 2},	{9122, 118, '', 8, 4, 2},	{9122, 119, '', 8, 4, 2},	{9122, 120, '', 8, 4, 2},	{9122, 322, '', 2, 4, 2},	{9122, 160, '', 5, 5, 2},	{9122, 327, '', 5, 5, 2},	{9122, 2900, '', 1, 6, 2},	{9122, 9101, '', 20, 7, 2},	{9122, 115, '', 15, 10, 2},	{9122, 114, '', 15, 12, 2},	{9122, 112, '', 15, 13, 2},	{9122, 113, '', 15, 13, 2},}tpl9123 = {-- "packId","itemId","`group`","num","rate","rateType"	{9123, 3299, '', 1, 1, 2},	{9123, 3300, '', 1, 1, 2},	{9123, 3301, '', 1, 1, 2},	{9123, 3302, '', 1, 1, 2},	{9123, 3303, '', 1, 1, 2},	{9123, 9004, '', 2, 4, 2},	{9123, 117, '', 8, 4, 2},	{9123, 118, '', 8, 4, 2},	{9123, 119, '', 8, 4, 2},	{9123, 120, '', 8, 4, 2},	{9123, 322, '', 2, 4, 2},	{9123, 160, '', 5, 5, 2},	{9123, 327, '', 5, 5, 2},	{9123, 2900, '', 1, 6, 2},	{9123, 9101, '', 20, 7, 2},	{9123, 115, '', 15, 10, 2},	{9123, 114, '', 15, 12, 2},	{9123, 112, '', 15, 13, 2},	{9123, 113, '', 15, 13, 2},}function createInsertSql(tname, tpl)	local tpl0 = getTpl0(tname)		-- 获取表各个字段	local ret = {}					-- 插入记录sql	table.insert(ret, string.format("insert into `%s`(", tname))	for k, v in pairs(tpl0) do		if k > 1 then			table.insert(ret, ",")		end		table.insert(ret, v)	end	table.insert(ret, ") values ")	for k, v in pairs(tpl) do		if k > 1 then			table.insert(ret, ",")		end		table.insert(ret, "(")		for k2, v2 in pairs(v) do			if k2 > 1 then				table.insert(ret, ",")			end			if type(v2) == "string" then				table.insert(ret, string.format("'%s'", v2))			else				table.insert(ret, v2)			end		end		table.insert(ret, ")")	end	table.insert(ret, ";")	local result = table.concat(ret)	-- 最终的sql语句	print(result)	print()endcreateInsertSql("tpl_pack", tpl9122)createInsertSql("tpl_pack", tpl9123)

 最终的执行结果如下:

[zcm@lua 6]$lua t1.luainsert into `tpl_pack`(packId,itemId,`group`,num,rate,rateType) values (9122,3294,'',1,1,2),(9122,3295,'',1,1,2),(9122,3296,'',1,1,2),(9122,3297,'',1,1,2),(9122,3298,'',1,1,2),(9122,9004,'',2,4,2),(9122,117,'',8,4,2),(9122,118,'',8,4,2),(9122,119,'',8,4,2),(9122,120,'',8,4,2),(9122,322,'',2,4,2),(9122,160,'',5,5,2),(9122,327,'',5,5,2),(9122,2900,'',1,6,2),(9122,9101,'',20,7,2),(9122,115,'',15,10,2),(9122,114,'',15,12,2),(9122,112,'',15,13,2),(9122,113,'',15,13,2);insert into `tpl_pack`(packId,itemId,`group`,num,rate,rateType) values (9123,3299,'',1,1,2),(9123,3300,'',1,1,2),(9123,3301,'',1,1,2),(9123,3302,'',1,1,2),(9123,3303,'',1,1,2),(9123,9004,'',2,4,2),(9123,117,'',8,4,2),(9123,118,'',8,4,2),(9123,119,'',8,4,2),(9123,120,'',8,4,2),(9123,322,'',2,4,2),(9123,160,'',5,5,2),(9123,327,'',5,5,2),(9123,2900,'',1,6,2),(9123,9101,'',20,7,2),(9123,115,'',15,10,2),(9123,114,'',15,12,2),(9123,112,'',15,13,2),(9123,113,'',15,13,2);

 

 

转载地址:http://ystna.baihongyu.com/

你可能感兴趣的文章
Java 生成 PDF 文档
查看>>
C语言实现栈的基本操作
查看>>
策略模式
查看>>
linux(6.8版本最小化安装)安装nginx实战
查看>>
我的友情链接
查看>>
检讨~
查看>>
html引用公共的html文件
查看>>
关于Java泛型使用的问题记录
查看>>
进入Android Dalvik虚拟机之Dalvik虚拟机的特点
查看>>
while的四种使用方式
查看>>
nginx添加几十个域名
查看>>
SpringMVC同时支持多视图(JSP,Velocity,Freemarker等)的一种思路实现
查看>>
致初入模板创作:了解各种浏览器真正的核心,测试模板兼容时就不用开这么多浏览器...
查看>>
我的友情链接
查看>>
利用rsync备份邮件系统
查看>>
java.io.Serializable浅析
查看>>
分布式计算
查看>>
FBReaderJ 的编码风格
查看>>
Yeslab 马老师 V2V环境下vCenter Server Heartbeat v6.4实现vCenter5.0的双机备份
查看>>
GO chan 编程
查看>>