mysql批量插入更新操作
//添加关联赠品(确定)
public function addGiveGoods($ids,$child,$parent_sku_no){
$license=new LicenseModel();
$personnel_code=$_SESSION['user']['personnel_code'];
$time=date("Y-m-d H:i:s",time());
$sku_gift=M('sku_gift');
$sku_gift_stock=M('sku_gift_stock');
$sku_nos=array_column($child,'sku_no');
$sgg_where['sku_no']=array('in',$sku_nos);
$sku_gift_stock_info=$sku_gift_stock->field('sku_no,is_online')->where($sgg_where)->select();
foreach($sku_gift_stock_info as $k=>$v){
$sgg[$v['sku_no']]=$v['is_online'];
}
$s_where['parent_sku_no']=$parent_sku_no;
$s_where['is_deleted']=;
$s_where['sku_no']=array('in',$sku_nos);
$s_info=$sku_gift->field('id,num,create_time,is_deleted,is_online,create_user')->where($s_where)->select();
foreach($s_info as $k=>$v){
$ss[$v['id']]=$v;
}
$pars2=array();
$pars3=array();
$sku_nos_info=array();
foreach($child as $k=>$v){
if(!empty($v['id'])){
$data[]=array(
'id'=>$v['id'],
'parent_sku_no'=>$parent_sku_no,
'sku_no'=>$v['sku_no'],
'create_time'=>$ss[$v['id']]['create_time'],
'modified'=>$time,
'num'=>$v['num'],
'is_deleted'=>$ss[$v['id']]['is_deleted'],
'is_online'=>$ss[$v['id']]['is_online'],
'update_user'=>$personnel_code,
'create_user'=>$ss[$v['id']]['create_user'],
);
}else{
$data[]=array(
'id'=>$v['id'],
'parent_sku_no'=>$parent_sku_no,
'sku_no'=>$v['sku_no'],
'create_time'=>$time,
'modified'=>$time,
'num'=>$v['num'],
'is_deleted'=>,
'is_online'=>empty($sgg[$v['sku_no']])?:,
'update_user'=>$personnel_code,
'create_user'=>$personnel_code,
);
$sku_nos_info[]=$v['sku_no'];
}
if(empty($v['id'])){
$pars2[]=array(
'message'=>$_SESSION['user']['true_name'].":赠品".$v['sku_no']."被商品".$parent_sku_no."关联了",
'create_time'=>$time,
'create_id'=>$personnel_code,
'type'=>,
'sku_no'=>$v['sku_no']
);
}else{
if($ss[$v['id']]['num'] !=$v['num']){
$pars3[]=array(
'message'=>$_SESSION['user']['true_name'].":修改了商品".$parent_sku_no."所关联的赠品".$v['sku_no']."的数量,修改前[".$ss[$v['id']]['num']."],修改后[".$v['num']."]",
'create_time'=>$time,
'create_id'=>$personnel_code,
'type'=>,
'sku_no'=>$parent_sku_no
);
}
}
}
foreach($data as $k=>$v){
if(empty($v['id'])){
$update[]="('','".$v['parent_sku_no']."','".$v['sku_no']."','".$v['create_time']."','".$v['modified']."','".$v['num']."','".$v['is_deleted']."','".$v['is_online']."','".$v['update_user']."','".$v['create_user']."')";
}else{
$update[]="('".$v['id']."','".$v['parent_sku_no']."','".$v['sku_no']."','".$v['create_time']."','".$v['modified']."','".$v['num']."','".$v['is_deleted']."','".$v['is_online']."','".$v['update_user']."','".$v['create_user']."')";
}
}
if(!empty($update)){
$value=implode(',',$update);
}
if(!empty($data)){
$Model = new \Think\Model();
$res=$Model->execute("insert into ".C('DB_PREFIX')."sku_gift(`id`,`parent_sku_no`,`sku_no`,`create_time`,`modified`,`num`,`is_deleted`,`is_online`,`update_user`,`create_user`) VALUES $value ON DUPLICATE KEY UPDATE `id`=VALUES(id),`parent_sku_no`=VALUES(parent_sku_no),`sku_no`=VALUES(sku_no),`create_time`=VALUES(create_time),`modified`=VALUES(modified),`num`=VALUES(num),`is_deleted`=VALUES(is_deleted),`is_online`=VALUES(is_online),`update_user`=VALUES(update_user),`create_user`=VALUES(create_user)");
if(!$res){
return ;
}
}
if(!empty($ids)){
$ids=explode(",",$ids);
$sg_where['id']=array('in',$ids);
$res_in=$sku_gift->field('parent_sku_no,sku_no')->where($sg_where)->select();
$ar=array(
'is_deleted'=>,
'modified'=>$time,
'update_user'=>$personnel_code,
);
$res=$sku_gift->data($ar)->where($sg_where)->save();
if(!$res){
return ;
}
$skus=implode(",",array_column($res_in,'sku_no'));
if(!empty($res_in)){
$pars=array(
'message'=>$_SESSION['user']['true_name'].":商品".$parent_sku_no."的关联赠品".$skus."被删除了",
'create_time'=>date('Y-m-d H:i:s',time()),
'create_id'=>$_SESSION['user']['personnel_code'],
'type'=>,
'sku_no'=>$parent_sku_no
);
$license->writeLog('sku_gift_log',$pars);
}
}
if(!empty($pars2)){
$license->writeAllLog('sku_gift_log',$pars2);
}
if(!empty($sku_nos_info)){
$sku_noss=implode(",",$sku_nos_info);
$params=array(
'message'=>$_SESSION['user']['true_name'].":商品".$parent_sku_no."添加了关联赠品".$sku_noss,
'create_time'=>date('Y-m-d H:i:s',time()),
'create_id'=>$_SESSION['user']['personnel_code'],
'type'=>,
'sku_no'=>$parent_sku_no
);
$license->writeLog('sku_gift_log',$params);
}
if(!empty($pars3)){
$license->writeAllLog('sku_gift_log',$pars3);
}
return true;
}
mysql批量插入更新操作的更多相关文章
- Java批量插入更新操作
以前总是说批量插入和更新的效率比非批量的要高,但是一直没有使用过批量处理数据的功能,现在由于项目中需要处理的数据量比较大,所以使用了批量处理的功能,java代码如下: 1.java实现批量插入数据: ...
- mybatis + mysql 批量插入、删除、更新
mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...
- mybatis+mysql批量插入和批量更新、存在及更新
mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
- MySQL 批量插入值
MySQL 批量插入值 今天遇到个问题,需要从类似以下语句中的各个小括号[其实也有中括号等]抽取相关字段进行组合[相关规则,此处略去不提],并保存到数据库中,此时如果每次插入一条,会连续进行多次插入, ...
- Oracle/Mysql批量插入的sql,效率比较高
1.oracle 批量插入: insert into tableName(col1,col2,col3...) select 1,'第一行第一列值','第二列值' from dual union ...
- mysql批量插入简单测试数据
mysql批量插入简单测试数据 # 参考网址: https://www.2cto.com/database/201703/618280.html 1.mysql创建测试表 CREATE TABLE ` ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- mysql批量update更新,mybatis中批量更新操作
在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...
随机推荐
- 1.项目创建及集成git
1.创建项目 (1)创建完以后,打开Terminal命令行,输入"git init"用于初始化本地仓库 (2)打开对应的项目文件夹,“Ctrl+h”可以查看该文件夹里是否存在.gi ...
- PostgreSQL存取jsonb
从PostgreSQL 9.3开始,json就成了postgres里的一种数据类型,也就是和varchar.int一样,我们表里的一个字段的类型可以为json了. 与此同时,postgres还提供了j ...
- 让AUTOIT自动帮我更新文件服务器上的一些常用软件
要解决的问题: 一个朋友的公司(上班时间员工均无外网)最近全部员人都安装上了360安全卫士,补丁在局域网内升级...但360主程序在没有外网的情况下是不能升级的.....需要朋友经常去 ...
- scrapy 开发流程
一.Spider 开发流程 实现一个 Spider 子的过程就像是完成一系列的填空题,Scrapy 框架提出以下问题让用户在Spider 子类中作答: 1.爬虫从哪个或者那些页面开始爬取? 2.对于一 ...
- Lesson 8 Trading standards
What makes trading between rich countires difficult? Chickens slautered in the United States, claim ...
- 洛谷 P5242 [USACO19FEB]Cow Dating P
这道题很有意思. 不难发现,对于一个区间 \([l, r]\),恰好只有一个奶牛接受邀请的概率为 \[\prod_{i=l}^r(1-p_i) \cdot \sum_{i=l}^r \frac {p_ ...
- Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
单例模式简介 单例模式是 Java 中最简单,也是最基础,最常用的设计模式之一.在运行期间,保证某个类只创建一个实例,保证一个类仅有一个实例,并提供一个访问它的全局访问点.下面就来讲讲Java中的N种 ...
- primecoin 全节点日常维护操作
primecoin 全节点日常维护操作: 一.关于primecoin维护,每天检查这6个地址是否能正常访问: http://api.primecoin.org/rest/pcoin/syncblock ...
- Android问题:ScrollView默认位置不是最顶部最全解决方案
描述: Scrollview里面嵌套了一个listview ,这是开发中最寻常的一种布局,遇到的问题是:在这个Scrollview页面默认的起始位置不是最顶部,而是listview的底部. 原因: 在 ...
- json序列化(重要)
(1)同(2)public JsonResult JsonUserGet() { DataSet ds = Web_User.P_LG_User_Get(nUserId); return Json(J ...