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

Golang Gorm 高级查询之where + find

插入测试数据


package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm"
)type Student struct {ID    int64Name  string `gorm:"size:6"`Age   intEmail *string
}func (*Student) TableName() string {return "student"
}func main() {dsn := "root:7PXjAkY!&nlR@tcp(192.168.11.128:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})db.AutoMigrate(&Student{})var sList []Studentcount := db.Find(&sList).Delete(&sList).RowsAffectedfmt.Println("count=", count)email1 := "12396836709@qq.com"sList = []Student{{ID:    1,Name:  "lucas",Age:   30,Email: &email1,},{ID:    2,Name:  "yanzi",Age:   28,Email: &email1,},{ID:    3,Name:  "lulei",Age:   29,Email: &email1,},{ID:    4,Name:  "jerry",Age:   25,Email: &email1,},}db.Create(&sList)}

 

where + first


user := User{}
// 查询用户数据
//自动生成sql: SELECT * FROM `users`  WHERE (username = 'tizi365') LIMIT 1db.Where("username = ?", "tizi365").First(&user)
fmt.Println(user)

 

Where语句里面条件    where + find = select * from table where...........


其实就是sql语句当中的where 

	var sList []Studentdb.Debug().Where("name = ?", "lucas").Find(&sList)fmt.Println(sList)[0.746ms] [rows:1] SELECT * FROM `student` WHERE name = 'lucas'
[{1 lucas 30 0xc0001c91f0}] var s Studentdb.Debug().Where("name = ?", "yanzi").First(&s)fmt.Println(s)[1.263ms] [rows:1] SELECT * FROM `student` WHERE name = 'yanzi' ORDER BY `student`.`id` LIMIT 1
{2 yanzi 18 <nil>}

之前学的这种写法也是可以的 

	var s Studentdb.Debug().Find(&s, "name = ?", "lucas")fmt.Println(s)[1.552ms] [rows:1] SELECT * FROM `student` WHERE name = 'lucas'              
{1 lucas 30 0xc0001c9300}  

使用结构体查询


如果是零值,那么查询的时候就不会将零值作为查询带上了 

	s = Student{Name: "lucas",Age:  30,}db.Debug().Where(&s).Find(&s)[1.543ms] [rows:1] SELECT * FROM `student` WHERE `student`.`name` = 'lucas' AND `student`.`age` = 30

相关文章:

Golang Gorm 高级查询之where + find

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…...

【LeetCode】30 天 Pandas 挑战

一、笔记 1.对某列进行筛选 df[(df[column1]条件1) | (df[column2]条件2) & (df[column3]条件3)][[columns]]真题&#xff1a; &#xff08;一&#xff09;条件筛选——1.大的国家&#xff08;一&#xff09;条件筛选——2.可回收且低脂的产品&#xff08;一&#xff09;…...

头歌MYSQL——课后作业2 数据表中数据的插入、修改和删除

第1关&#xff1a;数据表中插入一条记录,对指定字段赋值 任务描述 本关任务&#xff1a;在library数据库的reader数据表中插入一条数据 姓名xm为林团团&#xff0c;电话号码dhhm为13507311234&#xff0c;其余字段取默认值 显示数据表的所有数据 为了完成本关任务&#xff0c…...

Maven的profiles多环境配置

一个项目通常都会有多个不同的运行环境&#xff0c;例如开发环境&#xff0c;测试环境、生产环境等。而不同环境的构建过程很可能是不同的&#xff0c;例如数据源配置、插件、以及依赖的版本等。每次将项目部署到不同的环境时&#xff0c;都需要修改相应的配置&#xff0c;这样…...

go 协程

golang中的并发是函数相互独立运行的能力。Goroutines是并发运行的函数。Golang提供了 如何实现go协程 只需要在函数前面加上go即可 go task()package mainimport ("fmt""time" )func show(msg string) {for i : 0; i < 5; i {fmt.Printf("msg: …...

【python爬虫案例】用python爬豆瓣读书TOP250排行榜!

文章目录 一、爬虫对象-豆瓣读书TOP250二、python爬虫代码讲解三、讲解视频四、完整源码 一、爬虫对象-豆瓣读书TOP250 您好&#xff0c;我是 马哥python说 &#xff0c;一名10年程序猿。 今天我们分享一期python爬虫案例讲解。爬取对象是&#xff0c;豆瓣读书TOP250排行榜数…...

Qt中 gui 模块和 widgets 模块的区别

1. gui 模块提供了基本的图形系统抽象层,包括QPaintDevice、QPainter等类,这些类构成了Qt的绘图基础。 2. widgets 模块在 gui 模块的基础上,提供了完整的桌面级用户界面控件,如按钮、列表、滑块等。这些控件继承自更基础的图形类。 3. gui 模块是更底层的图形功能,widgets模…...

feign调用流程

...

15-数据结构-二叉树的遍历,递归和非递归

简介&#xff1a; 本文主要是代码实现&#xff0c;二叉树遍历&#xff0c;递归和非递归&#xff08;用栈&#xff09;。主要为了好理解&#xff0c;直接在代码处&#xff0c;加了详细注释&#xff0c;方便复习和后期默写。主要了解其基本思想&#xff0c;为后期熟练应用…...

最新绕过目标域名CDN进行信息收集技术

绕过目标域名CDN进行信息收集 1&#xff0e;CDN简介及工作流程 CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;的目的是通过在现有的网络架构中增加一层新的Cache&#xff08;缓存&#xff09;层&#xff0c;将网站的内容发布到最接近用户的网…...

overlayfs

参考&#xff1a;How containers work: overlayfs how overlays work Overlay filesystems, also known as “union filesystems” or “union mounts” let you mount a filesystem using 2 directories: a “lower” directory, and an “upper” directory. Basically: t…...

Mysql中九种索引失效场景分析

表数据&#xff1a; 索引情况&#xff1a; 其中a是主键&#xff0c;对应主键索引&#xff0c;bcd三个字段组成联合索引&#xff0c;e字段为一个索引 情况一&#xff1a;不符合最左匹配原则 去掉b1的条件后就不符合最左匹配原则了&#xff0c;导致索引失效 情况二&#xff…...

Android RecyclerView 之 列表宫格布局的切换

前言 RecyclerView 的使用我就不再多说&#xff0c;接下来的几篇文章主要说一下 RecyclerView 的实用小功能&#xff0c;包括 列表宫格的切换&#xff0c;吸顶效果&#xff0c;多布局效果等&#xff0c;今天这篇文章就来实现一下列表宫格的切换&#xff0c;效果如下 一、数据来…...

妈妈的爱依然深沉

村里的孩子为了买化肥&#xff0c;跟城里官老爷们借了好多钱。 那几年庄稼转手很快&#xff0c;不是用来吃的&#xff0c;因此借钱成本很高&#xff0c;大概LPR加100bp。 后来村里孩子终于发现庄稼终究只能用来吃&#xff0c;不再热衷买卖化肥。可是官老爷们的金融生意还要继续…...

net.ResolveTCPAddr(“tcp6“, address)

尝试解析 "www.google.com" 的IPv6地址。如果解析成功&#xff0c;程序将打印出解析后的IP地址、端口以及区域信息。如果解析失败&#xff0c;程序将打印出错误信息。 需要注意的是&#xff0c;如果 "www.google.com" 没有IPv6地址&#xff0c;或者本地网络…...

mysql和mybatisPlus实现:datetime类型的字段范围查询

前提说明 数据库在存储数据时,我们为了精确一下时间,便会把改时间类型的字段设置为datetime类型; 在过滤数据库数据时,我们又需要对该字段进行一个范围的过滤 由此,便出现了这篇博客 datetime数据类型 在MySQL中,datetime数据类型用于保存日期和时间的值。它的格式为Y…...

学习笔记:用ROS接收rosbag发布的topic

用ROS接收 bag.open发布的topic python语言 要使用ROS接收保存在rosbag文件中的话题消息&#xff0c;可以按照以下步骤进行操作&#xff1a; 1.首先&#xff0c;请确保你已经安装了ROS和相关的依赖。 2.创建一个ROS功能包&#xff08;或使用现有的功能包&#xff09;来处理…...

LAMP架构介绍配置命令讲解

LAMP架构介绍配置命令讲解 一、LAMP架构介绍1.1概述1.2LAMP各组件的主要作用1.3各组件的安装顺序 二、编译安装Apache httpd服务---命令讲解1、关闭防火墙&#xff0c;将安装Apache所需的软件包传到/opt/目录下2、安装环境依赖包3、配置软件模块4、编译安装5、优化配置文件路径…...

C语言之函数题

目录 1.乘法口诀表 2.交换两个整数 3.函数判断闰年 4.函数判断素数 5.计算斐波那契数 6.递归实现n的k次方 7.计算一个数的每位之和&#xff08;递归&#xff09; 8.字符串逆序&#xff08;递归实现&#xff09; 9.strlen的模拟&#xff08;递归实现&#xff09; 10.求…...

SpringBoot的四种handler类型

Controller ReuestMapping 实现Controller接口 使用Component将该类封装成一个Bean 实现HttpRequestHandler 实现RouterFunction...

高级音频解密技术实现:ncmdump模块化架构解析与自动化工作流

高级音频解密技术实现&#xff1a;ncmdump模块化架构解析与自动化工作流 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字音乐版权保护日益严格的今天&#xff0c;网易云音乐的NCM加密格式为用户带来了设备兼容性的技术挑战。n…...

统信UOS/麒麟KYLINOS用户看过来:除了Termius,这款开源免费的SSH工具electerm更香!

国产操作系统用户的SSH工具新选择&#xff1a;electerm深度体验报告 对于统信UOS和麒麟KYLINOS用户而言&#xff0c;远程服务器管理是日常工作中的高频需求。Termius作为老牌SSH工具确实表现不俗&#xff0c;但今天我们要探讨的electerm&#xff0c;或许能给你带来意想不到的惊…...

效率翻倍!OrCAD Capture CIS创建复杂元器件库的实战技巧:LM358与多Part器件管理

效率翻倍&#xff01;OrCAD Capture CIS创建复杂元器件库的实战技巧&#xff1a;LM358与多Part器件管理 在电子设计领域&#xff0c;元器件库的管理水平直接影响设计效率。许多工程师在使用OrCAD Capture CIS时&#xff0c;面对LM358这类多Part器件或更复杂的异构元件时&#x…...

统信UOS离线部署实战:手把手教你用yum缓存提取sshpass等软件包(附完整命令)

统信UOS离线部署全流程指南&#xff1a;从缓存提取到依赖解析 在高度安全隔离的内网环境中&#xff0c;统信UOS系统管理员常面临一个核心挑战&#xff1a;如何将联网环境获取的软件包完整迁移到离线机器。与常见的/var/cache/yum路径不同&#xff0c;统信UOS的缓存机制有其特殊…...

Spring AI Alibaba零基础速成(5) ---- Memory(记忆)

大模型默认只能单轮对话&#xff0c;每次对话完成后就会丢失当前对话记忆&#xff0c;我们之前了解过可以通过AssistantMessage把大模型回复结果存储起来下次提问时在发送给大模型&#xff0c;不过使用过于麻烦和受限&#xff0c;Spring AI 和Spring AI Alibaba都实现了更好实现…...

单频信号频谱检测仿真实验:从能量检测到匹配滤波器的性能对比

1. 项目概述&#xff1a;从“听”到“看”的信号世界 在无线通信、雷达探测、声学分析乃至医疗影像等众多领域&#xff0c;我们常常面对一个核心问题&#xff1a;如何从一段复杂的、充满噪声的波形中&#xff0c;准确地识别出一个特定频率的信号是否存在&#xff1f;这就像在一…...

振弦采集模块设计:从传感器选型到数字信号处理的完整指南

1. 振弦采集读数模块&#xff1a;从物理振动到数字信号的完整旅程在工程测量、结构健康监测以及乐器数字化等领域&#xff0c;我们常常需要精确地捕捉一根弦或类似结构的振动信息。比如&#xff0c;监测桥梁拉索的张力变化、分析古筝琴弦的声学特性&#xff0c;或者检测工业设备…...

别死磕数据线!聊聊EMMC BGA布线里那些能删掉的‘废脚’

别死磕数据线&#xff01;EMMC BGA布线中那些被忽略的"废脚"优化策略 在PCB layout工程师的日常工作中&#xff0c;EMMC存储器的BGA封装布线常常让人头疼不已。0.5mm的球间距、密集的数据线、严格的阻抗要求&#xff0c;这些因素叠加在一起&#xff0c;往往让设计者…...

单词拆分----dp

思路&#xff1a;刚开始看的时候没有思路&#xff0c;但我看给的样例&#xff0c;可以多次遍历wordDict看。。。好像不太对准备看看题解。首先需要知道这道题的dp的公式代表这什么&#xff0c;dp[i]表示 字符串s从起始位置到位置i&#xff0c;能否被被拆分成字典中的单词&#…...

这几家有机膨润土厂家口碑稳定,你选对了吗?

在工业与新材料领域&#xff0c;有机膨润土作为一种关键的功能性添加剂&#xff0c;正从“幕后”走向“台前”。无论是涂料、油墨的流变控制&#xff0c;还是钻井液、润滑脂的耐温需求&#xff0c;又或是农药、兽药的载体优化&#xff0c;它的身影无处不在。然而&#xff0c;面…...