- 46
- 0
问题,程序中批量查找并更新数据,除了循环还有什么更好的方式吗
批量提交数据结构如下
{
"data": [
{
"gsm_address_id": 1,
"province_name": "浙江省",
"city_name": "杭州市",
"exp_area_name": "余杭区",
"detail_address": "某某大街",
"post_code": "1232",
"phone": "13212345123",
"consignee": "联系人"
},
{
"gsm_address_id": 1,
"province_name": "浙江省",
"city_name": "杭州市",
"exp_area_name": "余杭区",
"detail_address": "某某大街",
"post_code": "1232",
"phone": "13212345123",
"consignee": "联系人"
}
...
]
}
数据库结构如下
// 用户表
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '姓名',
`phone` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '手机号'
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
// 地址表
CREATE TABLE `addresss` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL COMMENT '用户 id',
`gsm_address_id` varchar(20) DEFAULT NULL COMMENT 'gsm 地址 id',
`province_name` varchar(20) DEFAULT NULL COMMENT '省',
`city_name` varchar(20) DEFAULT NULL COMMENT '市',
`exp_area_name` varchar(30) DEFAULT NULL COMMENT '区',
`detail_address` varchar(50) DEFAULT NULL COMMENT '详细地址',
`post_code` varchar(10) DEFAULT NULL COMMENT '邮编',
`tel` varchar(20) DEFAULT NULL COMMENT '联系方式',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`consignee` varchar(20) DEFAULT NULL COMMENT '联系人名称',
`is_default` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否默认 1 是 0 不是',
`status` tinyint(4) DEFAULT NULL COMMENT '状态 1 正常 2 禁用',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`) USING BTREE,
KEY `gsm_user_number` (`gsm_user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=501 DEFAULT CHARSET=utf8;
接受到传递的 json 数据。第一步:根据 gsm_address_id 查找地址表中是否存在该数据,存在则更新,不存在则新增。第二步:根据手机号查找用户表数据。存在这个用户则地址表中 user_id 该用户的 id,不存在则默认为 0 。除了循环处理以外,更好的做法该如何处理。谢谢大佬们~
2
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
