gorm入门——根据条件查询列表
在 GORM 中,你可以通过 Where 方法结合多个条件来查询符合条件的记录列表。Where 方法支持 AND 和 OR 条件,并且可以链式调用以构建复杂的查询。
示例代码:
假设你有一个 User 结构体,并希望根据多个条件查询符合条件的记录列表。
package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm"
)type User struct {ID uintName stringAge int
}func main() {dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil {panic(err)}var users []User// 示例1:AND 条件查询db.Where("name = ? AND age = ?", "John Doe", 30).Find(&users)fmt.Println("Users with name 'John Doe' and age 30:", users)// 示例2:OR 条件查询db.Where("name = ?", "John Doe").Or("age = ?", 25).Find(&users)fmt.Println("Users with name 'John Doe' or age 25:", users)// 示例3:使用 map 传递多个条件 (AND 条件)db.Where(map[string]interface{}{"name": "John Doe", "age": 30}).Find(&users)fmt.Println("Users with name 'John Doe' and age 30 (using map):", users)// 示例4:链式查询多个条件db.Where("name = ?", "John Doe").Where("age = ?", 30).Find(&users)fmt.Println("Users with name 'John Doe' and age 30 (using chained Where):", users)
}
解释:
1.AND 条件查询:
db.Where("name = ? AND age = ?", "John Doe", 30).Find(&users)
使用 SQL 的 AND 语法,查询 name 为 "John Doe" 且 age 为 30 的记录。
2. OR 条件查询:
db.Where("name = ?", "John Doe").Or("age = ?", 25).Find(&users)
使用 Or 方法添加 OR 条件,查询 name 为 "John Doe" 或 age 为 25 的记录。
3.使用 map 传递多个条件:
db.Where(map[string]interface{}{"name": "John Doe", "age": 30}).Find(&users)
通过 map 传递多个条件,这些条件默认是 AND 关系。
4.链式调用多个 Where 条件:
db.Where("name = ?", "John Doe").Where("age = ?", 30).Find(&users)
通过链式调用 Where 方法,可以添加多个条件,每个 Where 方法都是一个 AND 条件。
复杂查询示例:
如果你有更复杂的查询需求,比如在一个条件组中使用 AND,另一个条件组中使用 OR,可以使用 Where 方法组合和嵌套条件:
db.Where("name = ? AND (age = ? OR age = ?)", "John Doe", 30, 25).Find(&users)
这个示例查询 name 为 "John Doe" 并且 age 为 30 或 25 的记录。
相关文章:
gorm入门——根据条件查询列表
在 GORM 中,你可以通过 Where 方法结合多个条件来查询符合条件的记录列表。Where 方法支持 AND 和 OR 条件,并且可以链式调用以构建复杂的查询。 示例代码: 假设你有一个 User 结构体,并希望根据多个条件查询符合条件的记录列表…...
笔面试编程题总结
8/6诺瓦星云 修改程序 void point(int *p){*p p[2];}; int main() {int c[] {1,2,3,4,5},*p c;point(p1);for(;p <c5;){printf("%d",*p);}return 0; }1、分隔字符串 strtok //c语言 #include <stdio.h> #include <string.h>// 函数声明 char* fin…...
[other][知识]八大行星的英文各是什么?
1、水星英文名 Mercury,水星最接近太阳,是太阳系中体积和质量最小的行星; 2、金星英文名 Venus,太阳系中第六大行星,太阳系中温度最高的行星,中国古代称之为太白或太白金星; 3、地球英文 E…...
如何使用 AWS CLI 创建和运行 EMR 集群
为初学者提供清晰易懂的教程 为初学者提供清晰易懂的教程 Apache Spark 和 AWS EMR 上的 Spark 集群 添加图片注释,不超过 140 字(可选) 欢迎来到雲闪世界。Spark 被认为是“大数据丛林之王”,在数据分析、机器学习、流媒体和图形…...
HDFS写入数据的流程图
1.客户端向namenode发送请求,请示写入数据 2.namenode接受请求后,判断这个用户是否有写入权限,如果不具备直接报错;如果有写入权限,接着判断在要写入的目录下是否已经存在这个文件,如果存在,直…...
【Material-UI】使用指南:快速入门与核心功能解析
文章目录 一、快速入门1.1 安装和导入1.2 组件的独立性 二、全局设置2.1 响应式元标签2.2 CssBaseline2.3 默认字体 三、响应式设计3.1 Grid系统 四、最佳实践4.1 组件的一致性4.2 性能优化4.3 可访问性 五、总结 Material-UI是一个功能强大且灵活的React UI框架,为…...
【Java 第十三篇章】MyBatis 持久化框架的介绍
一、MyBatis 的历史 MyBatis 的前身是 iBATIS,它最早在 2001年由 Clinton Begin 发起。iBATIS 在早期就因其简单易用和灵活的特性受到了开发者的关注。 随着时间的推移,iBATIS 不断发展和改进。然而,在 2010年,iBATIS 项目团队决…...
AI新应用:概要设计与详细设计自动生成解决方案
近日,CoCode旗下的Co-Project智能项目管理平台V4.0.0升级发布,新增AI生成概要设计和AI生成详细设计功能,大大提高了设计的效率和质量。 CoCode旗下的Co-Project智能项目管理平台 一键智绘蓝图自现 平台设计板块新增概要设计功能,…...
【物联网设备端开发】使用QEMU模拟ESP硬件运行ESP-IDF
目录 一,开发环境搭建 1.1 安装ESP-IDF 1.2 安装vscode插件 1.3 在ESP-IDF插件配置ESP-IDF开发配置 1.4 下载IOTDeviceSDK 设备端开发代码 1.5 通过ESP-IDF插件编译好镜像 1.6 构建QEMU docker镜像 1.7 使用QEMU容器运行镜像 二,搭建QEMU环境步…...
#子传父父传子props和emits #封装的table #vue3
#子传父&父传子props和emits #封装的table #vue3 父组件:emits defineEmits props 子组件: 子组件 <template><el-table v-bind"$attrs" ref"innerTableRef" v-loading"loading" border :data"tabl…...
尚硅谷谷粒商城项目笔记——四、使用docker安装redis【电脑CPU:AMD】
四、使用docker安装redis 注意: 因为电脑是AMD芯片,自己知识储备不够,无法保证和课程中用到的环境一样,所以环境都是自己根据适应硬件软件环境重新配置的,这里的虚拟机使用的是VMware。 在解决了 Docker 安装的问题之…...
Java在无人驾驶方向的就业方向
在无人驾驶领域,Java作为一种主流编程语言,尽管不是最常见的选择(例如,C和Python通常更受欢迎),但它仍然有很多应用场景和就业机会。以下是一些Java在无人驾驶方向的就业方向: 1. 后台服务开发 …...
机器学习中的关键距离度量及其应用
引言 在当今的数据驱动世界中,机器学习算法扮演着至关重要的角色,它们在图像分类、面部识别、在线内容审核、零售目录优化和推荐系统等多个领域发挥着重要作用。这些算法的核心在于它们能够识别和利用数据之间的相似性。而实现这一点的关键,…...
Redis中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
目录 1.什么是缓存雪崩1.1 导致雪崩的原因1.2 如何解决 2.什么是缓存穿透2.1 导致穿透的原因2.2 如何解决 3.什么是缓存预热3.1 如何解决 4.什么是缓存降级4.1 缓存降级的目的4.2 解决方案4.3 服务降级的目的 5.缓存更新 1.什么是缓存雪崩 就是存储在缓存里面的大量数据&#…...
【C++】vector 的模拟实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
【C++】模版详解
1、概念 C模版分两类:函数模版和类模版 1)函数模板的格式 template <class 形参名,class 形参名,......> 返回类型 函数名(参数列表) {函数体 }例如: template <class T> void swap(T& a, T& b…...
应用商店故障(UOS系统)
应用商店故障(UOS系统) 1. 安装应用商店内的应用无法下载,更新系统时提示依赖关系被破坏,怎么办? 问题描述 安装应用商店内的应用无法下载,更新系统时均提示依赖关系被破坏 解决方案 1、可先建议用户尝试修…...
8月8号前端日报:web在线进行eps32固件升级
最近几天在开发固件更新的功能,学习了不少相关的知识。 在arduino中对esp32进行固件更新,本质是使用esp官方的esptool,使用一个python exe程序,执行一段脚本,该脚本会将固件文件按照对应的位置来写入到esp芯片中。一共…...
win7安装python3.10
到这下载 PythonWin7/3.10.1 at master adang1345/PythonWin7 GitHub...
【Liunx】线程与进程的经典面试题总结
在这个浮躁的时代 只有自律的人才能脱颖而出 -- 《觉醒年代》 线程与进程的面试题总结 1 简述什么是LWP2 简述LWP与pthread_create创建的线程之间的关系3 简述轻量级进程ID与进程ID之间的区别4 请简述什么是线程互斥,为什么需要互斥5 简述你了解的进程间通信方式…...
【STM32实战】机械臂快递分拣系统(三)——基于阿里云的远程监控与交互控制
1. 阿里云物联网平台接入实战 第一次接触阿里云物联网平台时,我被它强大的设备管理能力震撼到了。这个平台就像个智能管家,不仅能实时监控设备状态,还能远程下发控制指令。对于我们的机械臂快递分拣系统来说,简直是量身定做的解决…...
SEO_如何通过内容优化有效提升SEO效果?(393 )
SEO内容优化的核心策略:如何通过内容优化有效提升SEO效果? 在当前竞争激烈的互联网环境中,如何通过内容优化有效提升SEO效果成为了每一个网站运营者关注的焦点。SEO,即搜索引擎优化,是提升网站在搜索引擎中排名的关键…...
正规DAPP的奖励,到底来自哪里?(Web3避坑指南)
市面上正规的DAPP项目,那些奖励到底源自何处?这是一个看似基础,却能筛选出绝大多数Web3坑的核心问题——很多人盲目追逐高收益,却从未深究“钱从哪来”,最终沦为资金盘的接盘侠。今天,我们就沉下心聊聊这个…...
我的第一个mdp演示
我的第一个mdp演示 【免费下载链接】mdp A command-line based markdown presentation tool. 项目地址: https://gitcode.com/gh_mirrors/md/mdp 特性列表 轻量级命令行工具支持Markdown语法代码高亮显示 运行演示: bash mdp demo.md常用控制键: …...
【nginx】深入解析net::ERR_CONTENT_LENGTH_MISMATCH 200:权限配置与日志排查实战
1. 错误现象与初步诊断 当你用浏览器访问Nginx托管的网站时,突然看到控制台报错net::ERR_CONTENT_LENGTH_MISMATCH 200,但页面居然还能正常显示部分内容,这种情况是不是很诡异?我第一次遇到时也是一头雾水。这个错误表面看是内容长…...
SecGPT-14B作品分享:5类典型安全任务(漏洞/日志/异常/攻防/命令)全覆盖输出
SecGPT-14B作品分享:5类典型安全任务全覆盖输出 1. SecGPT-14B简介 SecGPT是由云起无垠团队于2023年推出的开源大语言模型,专门针对网络安全领域设计开发。该模型基于先进的自然语言处理技术,融合了安全专业知识库,能够高效处理…...
MogFace人脸检测模型多任务拓展:基于检测结果的年龄/性别属性预测集成
MogFace人脸检测模型多任务拓展:基于检测结果的年龄/性别属性预测集成 1. 项目概述与核心价值 MogFace人脸检测模型作为CVPR 2022的优秀研究成果,已经在人脸检测领域展现出卓越的性能。但单纯的人脸检测往往无法满足实际应用需求,我们经常需…...
HC32F460串口DMA发送中断接收避坑指南:静电干扰、丢字节问题与中断配置详解
HC32F460串口通信实战:DMA发送与中断接收的深度优化指南 在华大HC32F460系列MCU的实际应用中,串口通信作为最基础也最关键的通信接口之一,其稳定性和效率直接影响整个系统的可靠性。不同于STM32等传统MCU的固定中断映射机制,HC32F…...
jless屏幕滚动命令终极指南:掌握ctrl-b、ctrl-f、PageUp、PageDown高效浏览JSON数据
jless屏幕滚动命令终极指南:掌握ctrl-b、ctrl-f、PageUp、PageDown高效浏览JSON数据 【免费下载链接】jless jless is a command-line JSON viewer designed for reading, exploring, and searching through JSON data. 项目地址: https://gitcode.com/gh_mirrors…...
如何快速掌握Postgres Language Server的PL/pgSQL支持:存储过程开发的终极指南
如何快速掌握Postgres Language Server的PL/pgSQL支持:存储过程开发的终极指南 【免费下载链接】postgres_lsp A Language Server for Postgres 项目地址: https://gitcode.com/GitHub_Trending/po/postgres_lsp Postgres Language Server是一款专为PostgreS…...
