当前位置: 首页 > news >正文

Golang Gorm 更新字段 save update updates

更新和删除操作的前提条件都是要在找到数据的情况下,先要查询到数据才可以做操作。

更新的前提的先查询到记录,Save保存所有字段,用于单个记录的全字段更新它会保控所有字段,即使零值也会保存。

在更新和删除之前,要利用之前学的查询语句先查询到数据,再去更新,也就是使用find take先去查询所需要的记录,再去更新!

save 更新单条记录并且所有字段更新


用于单条记录的全部字段更新,它会保留所有字段,即使0值也会去更新。 

db.Debug().Save(&s)

UPDATE `student` SET `name`='test',`age`=60,`email`='123@qq.com' WHERE `id` = 7

可以看到会更新零值和多个字段。 

	var s Studentdb.Debug().Take(&s, "name = ?", "test")fmt.Println(s)s.Age = 60db.Debug().Save(&s)fmt.Println(s)[1.423ms] [rows:1] SELECT * FROM `student` WHERE name = 'test' LIMIT 1
{7 test 110 0xc000209140}   [5.531ms] [rows:1] UPDATE `student` SET `name`='test',`age`=60,`email`='123@qq.com' WHERE `id` = 7
{7 test 60 0xc000209140} 

 Select 只更新某个字段


只更新某个字段  select + save      select是字段的名字name,不是Name

	var s Studentdb.Debug().Take(&s, "name = ?", "test")s.Age = 50db.Debug().Select("age").Save(&s)fmt.Println(s)[2.220ms] [rows:1] SELECT * FROM `student` WHERE name = 'test' LIMIT 1
[8.689ms] [rows:1] UPDATE `student` SET `age`=50 WHERE `id` = 7 

update 批量更新单个字段


	var s []Studentdb.Debug().Find(&s, []int{1, 2, 3}).Update("age", 10)fmt.Println(s)[1.258ms] [rows:3] SELECT * FROM `student` WHERE `student`.`id` IN (1,2,3)[7.232ms] [rows:3] UPDATE `student` SET `age`=10 WHERE `student`.`id` IN (1,2,3) AND `id` IN (1,2,3)
[{1 lucas 10 <nil>} {2 lucas 10 <nil>} {3  10 <nil>}] 

更新多个字段 updates


save是批量更新字段,但是想更新某个字段,updates可以接受结构体类型和map类型。

	var s []Studentdb.Debug().Find(&s, []int{1, 2, 3}).Updates(&Student{Age: 66})fmt.Println(s)[6.909ms] [rows:3] UPDATE `student` SET `age`=66 WHERE `student`.`id` IN (1,2,3) AND `id` IN (1,2,3)
[{1 lucas 66 <nil>} {2 lucas 66 <nil>} {3  66 <nil>}]  
	var s []Studentdb.Debug().Find(&s, []int{1, 2, 3}).Updates(map[string]any{"name": "lucas",})[4.648ms] [rows:1] UPDATE `student` SET `name`='lucas' WHERE `student`.`id` IN (1,2,3) AND `id` IN (1,2,3)
[{1 lucas 66 <nil>} {2 lucas 66 <nil>} {3 lucas 66 <nil>}]  
var s Student
db.Debug().Model(&s).Where("name = ?", "lucas").Update("age", 106)[7.091ms] [rows:1] UPDATE `student` SET `age`=106 WHERE name = 'lucas'

相关文章:

Golang Gorm 更新字段 save update updates

更新和删除操作的前提条件都是要在找到数据的情况下&#xff0c;先要查询到数据才可以做操作。 更新的前提的先查询到记录&#xff0c;Save保存所有字段&#xff0c;用于单个记录的全字段更新它会保控所有字段&#xff0c;即使零值也会保存。 在更新和删除之前&#xff0c;要利…...

springBoot 配置文件引入 redis 的相关参数说明

在Spring Boot应用中使用Redis作为缓存或数据存储时&#xff0c;可以在应用的配置文件中配置相关参数。下面是常用的Redis配置参数及其说明&#xff1a; spring.redis.host: Redis服务器主机地址&#xff0c;默认为localhost。spring.redis.port: Redis服务器端口&#xff0c;…...

Docker的使用心得:简化开发与部署的利器

开发与测试的无缝衔接&#xff1a; Docker让开发与测试之间的切换变得前所未有的顺畅。我可以在本地开发环境中创建一个与生产环境一致的Docker容器&#xff0c;这样不仅可以确保开发过程中不会出现意外问题&#xff0c;还可以在测试阶段避免不必要的繁琐配置。 跨平台的可移植…...

vue3 基于element plus对el-pagination进行二次封装

vue3 基于element plus对el-pagination进行二次封装 1、前言2、在components文件夹中新建pagination.vue文件3、在组件内使用分页 1、前言 在vue3项目中&#xff0c;如果每个列表页都敲一遍分页方法&#xff0c;显然是不合理的&#xff0c;那么&#xff0c;下面我将基于elemen…...

RuntimeError: result type Float can‘t be cast to the desired output type __int64报错解决方法

小白刚开始学习YOLOv5&#xff0c;跟随老哥的步骤走了一遍目标检测--手把手教你搭建自己的YOLOv5目标检测平台 最后训练最后一步出现RuntimeError: result type Float can‘t be cast to the desired output type __int64报错 解决方法&#xff1a;找到5.0版报错的loss.py中最…...

解析Python爬虫常见异常及处理方法

作为专业爬虫程序猿长期混迹于爬虫ip解决方案中&#xff0c;我们经常会遇到各种各样的异常情况。在爬虫开发过程中&#xff0c;处理这些异常是不可或缺的一部分。本文将为大家总结常见的Python爬虫异常&#xff0c;并分享相应的处理方法&#xff0c;帮助你避免绊倒在爬虫之路上…...

详解Spring的循环依赖问题、三级缓存解决方案源码分析

0、基础&#xff1a;Bean的生命周期 在Spring中&#xff0c;由于IOC的控制反转&#xff0c;创建对象不再是简单的new出来&#xff0c;而是交给Spring去创建&#xff0c;会经历一系列Bean的生命周期才创建出相应的对象。而循环依赖问题也是由Bean的生命周期过程导致的问题&#…...

oracle分析函数学习

0、建表及插入测试数据 --CREATE TEST TABLE AND INSERT TEST DATA. create table students (id number(15,0), area varchar2(10), stu_type varchar2(2), score number(20,2));insert into students values(1, 111, g, 80 ); insert into students values(1, 111, j, 80 ); …...

代码随想录训练营day17|110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和 v...

TOC 前言 代码随想录算法训练营day17 一、Leetcode 110.平衡二叉树 1.题目 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#x…...

C# Thread用法

C# 中的线程&#xff08;Thread&#xff09;是一种并发执行的机制&#xff0c;允许同时执行多个代码块&#xff0c;从而提高程序的性能和响应性。下面是关于如何使用 C# 线程的一些基本用法&#xff1a; 1. 创建线程&#xff1a; 使用 System.Threading 命名空间中的 Thread 类…...

新榜 | CityWalk本地生活商业价值洞察报告

如果说现在有人问&#xff0c;最新的网络热词是什么? “CityWalk”&#xff0c;这可能是大多数人的答案。 近段时间&#xff0c;“CityWalk”刷屏了各种社交媒体&#xff0c;给网友们带来了一场“城市漫步”之旅。 脱离群体狂欢&#xff0c;这个在社交媒体引发热议的词汇背后又…...

LVS负载均衡集群-NAT模式部署

集群 集群&#xff1a;将多台主机作为一个整体&#xff0c;然后对外提供相同的服务 集群使用场景&#xff1a;高并发的场景 集群的分类 1.负载均衡器集群 减少响应延迟&#xff0c;提高并发处理的能力 2&#xff0c;高可用集群 增强系统的稳定性可靠性&…...

C++学习笔记总结练习:effective 学习日志

准则 1.少使用define define所定义的常量会在预处理的时候被替代&#xff0c;出错编译器不容易找到错误。而且还没有作用范围限制&#xff0c;推荐使用constdefine宏定义的函数&#xff0c;容易出错&#xff0c;而且参数需要加上小括号&#xff0c;推荐使用inline有的类中例如…...

Vue教程(五):样式绑定——class和style

1、样式代码准备 样式提前准备 <style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px solid red;background-color: rgba(255, 255, 0, 0.644);background: linear-gradient(30deg, yellow, pink, orange, yellow);}.sad{border: 4px …...

开放网关架构演进

作者&#xff1a;庄文弘&#xff08;弘智&#xff09; 淘宝开放平台是阿里与外部生态互联互通的重要开放途径&#xff0c;通过开放的产品技术把阿里经济体一系列基础服务&#xff0c;像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴&#xff0c;推动行业的…...

torch一些操作

Pytorch文档 Pytorch 官方文档 https://pytorch.org/docs/stable/index.html pytorch 里的一些基础tensor操作讲的不错 https://blog.csdn.net/abc13526222160/category_8614343.html 关于pytorch的Broadcast,合并与分割,数学运算,属性统计以及高阶操作 https://blog.csd…...

ICCV23 | Ada3D:利用动态推理挖掘3D感知任务中数据冗余性

​ 论文地址&#xff1a;https://arxiv.org/abs/2307.08209 项目主页&#xff1a;https://a-suozhang.xyz/ada3d.github.io/ 01. 背景与动因 3D检测(3D Detection)任务是自动驾驶任务中的重要任务。由于自动驾驶任务的安全性至关重要(safety-critic)&#xff0c;对感知算法的延…...

软件工程模型-架构师之路(四)

软件工程模型 敏捷开发&#xff1a; 个体和交互 胜过 过程和工具、可以工作的软件 胜过 面面俱到的文件、客户合作胜过合同谈判、响应变化 胜过 循序计划。&#xff08;适应需求变化&#xff0c;积极响应&#xff09; 敏捷开发与其他结构化方法区别特点&#xff1a;面向人的…...

ubuntu20.04共享文件夹—— /mnt/hgfs里没有共享文件夹

参考文章&#xff1a;https://blog.csdn.net/Edwinwzy/article/details/129580636 虚拟机启用共享文件夹后&#xff0c;/mnt/hgfs下面为空&#xff0c;使用 vmware-hgfsclient 查看设置的共享文件夹名字也是为空。 解决方法&#xff1a; 1. 重新安装vmware tools. 在菜单…...

Redis中的有序集合及其底层跳表

前言 本文着重介绍Redis中的有序集合的底层实现中的跳表 有序集合 Sorted Set Redis中的Sorted Set 是一个有序的无重复值的集合&#xff0c;他底层是使用压缩列表和跳表实现的&#xff0c;和Java中的HashMap底层数据结构&#xff08;1.8&#xff09;链表红黑树异曲同工之妙…...

3步解锁Mac隐藏技能:Whisky让你的苹果电脑运行Windows应用

3步解锁Mac隐藏技能&#xff1a;Whisky让你的苹果电脑运行Windows应用 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 你是否曾经在Mac上收到一个.exe文件&#xff0c;却只能无奈地告…...

GD32F303外部中断实战:从按键消抖到中断优先级配置,一个例程全搞定

GD32F303外部中断实战&#xff1a;从按键消抖到中断优先级配置 第一次接触嵌入式开发时&#xff0c;最让我困惑的就是中断系统。记得当时用按键控制LED&#xff0c;明明代码逻辑没问题&#xff0c;LED却总是莫名其妙地闪烁。后来才发现是按键抖动导致多次触发中断。今天我们就以…...

抖音批量下载神器:免费开源工具解决你的视频保存难题

抖音批量下载神器&#xff1a;免费开源工具解决你的视频保存难题 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

多模态LLM落地实战:从架构选型到推理部署的12个生死关卡

1. 这不是“多模态大模型”的科普文&#xff0c;而是一份一线工程师拆解真实系统时的现场笔记“Understanding Multimodal LLMs: The Next Evolution of AI”——这个标题在2024年已经刷屏了太多次。但你有没有发现&#xff0c;几乎所有公开资料都在讲“它能看图说话”“它能理…...

Richard Socher创业公司获6.5亿美元融资,欲让AI自动化研发引领底层范式转移

Richard Socher创业公司获巨额融资一家创业公司获得了GV&#xff08;Alphabet旗下VC&#xff09;和Greycroft共同领投的6.5亿美元早期融资&#xff0c;NVIDIA和AMD也参与本轮融资&#xff0c;它的估值达到了46.5亿美元。这家公司的创始人是Richard Socher&#xff0c;他是AI领域…...

OpenClaw入门教程:从零部署到第一个智能体

OpenClaw OpenClaw&#xff08;原 Moltbot&#xff09;是一个开源的 AI 智能体&#xff08;Agent&#xff09;框架&#xff0c;旨在通过连接大语言模型&#xff08;LLM&#xff09;与外部工具&#xff08;如浏览器、API、办公软件&#xff09;&#xff0c;实现自动化任务执行。…...

武林外传十年之约手游官网下载:武林外传十年之约最新官方下载渠道

《武林外传十年之约》又名《武林外传手游》《武林外传怀旧版》《武林外传正版复刻》&#xff0c;由安徽游昕联合忆往游戏运营的正版武侠 MMORPG 手游。1:1 复刻同福客栈、七侠镇、五霸岗、十八里铺等经典场景&#xff0c;完美还原枪豪、剑客、术士、医师四大职业体系&#xff0…...

Gemini模型训练数据合规性审查清单(含原始数据来源验证、合法基础映射表、数据血缘图谱工具推荐)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini模型训练数据合规性审查总览 Gemini系列大语言模型的训练数据来源广泛&#xff0c;涵盖公开网页、学术文献、代码仓库及多语种图书资源。为确保其符合全球主要司法辖区的数据治理要求&#xff08…...

面部SDF阴影锯齿问题的探索

近期做的一些工作涉及到面部SDF阴影&#xff0c;网上普遍做法是不做插值&#xff0c;直接Step硬性裁剪&#xff0c;不是很理解为什么不用插值&#xff0c;于是我通过SmoothStep做了简单修改&#xff0c;看下效果。 看上去还可以是因为gif有压缩&#xff0c;但面部SDF阴影做插值…...

LEO卫星自愈网络:动态抗干扰与信号合并算法实践

1. 项目概述&#xff1a;LEO卫星自愈网络的设计挑战与创新方案在近地轨道&#xff08;LEO&#xff09;卫星通信领域&#xff0c;我们正面临着一个关键的技术矛盾&#xff1a;一方面&#xff0c;LEO卫星凭借其低延迟特性成为下一代全球通信网络的核心组成部分&#xff1b;另一方…...