数据库的连接上一篇已经写了,这部分就直接开始查询数据了
func firstUserbase() {
// 按主键排序,查询第一条
client := sqlDb()
ub := &Userbase{}
err := client.First(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:这个是按主键ID排序查询的
func takeUserbase() {
// 不指定排序,查询一条
client := sqlDb()
ub := &Userbase{}
err := client.Take(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func lastUserbase() {
// 按主键排序,查询最后一条
client := sqlDb()
ub := &Userbase{}
err := client.Last(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func firstUserbaseById() {
// 按主键查询,仅适用于主键是数值类型
client := sqlDb()
ub := &Userbase{}
err := client.First(&ub, 1187918).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func firstUserbaseByUserName() {
// 按条件查询,获取一条记录
client := sqlDb()
ub := &Userbase{}
err := client.Where("USER_NAME = ?", "qwer0626").First(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func findUserbaseByClientVar() {
// 按条件查询,获取多条记录
client := sqlDb()
ub := &[]Userbase{}
err := client.Where("CLIENT_VER = ?", "7.8.030504").Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseIn() {
// 按条件查询,获取多条记录
client := sqlDb()
ub := &[]Userbase{}
err := client.Where("USER_NAME in (?)", []string{"qwer0625", "qwer0626"}).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseLike() {
// 按条件查询,获取多条记录
client := sqlDb()
ub := &[]Userbase{}
err := client.Where("USER_NAME like ?", "%r0626").Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseAnd() {
// 按条件查询,and
client := sqlDb()
ub := &[]Userbase{}
nowtime := time.Now()
afterTime := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 9, 0, 0, 0, nowtime.Location())
err := client.Where("USER_NAME like ? AND LOGIN_DATE > ?", "%0626", afterTime).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseByLoginDate() {
// 根据日期查询
client := sqlDb()
ub := &[]Userbase{}
nowtime := time.Now()
afterTime := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 9, 0, 0, 0, nowtime.Location())
err := client.Where(" LOGIN_DATE > ? AND LOGIN_DATE < ?", afterTime, nowtime).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseByLoginDateLimit() {
// limit限制
client := sqlDb()
ub := &[]Userbase{}
nowtime := time.Now()
afterTime := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 9, 0, 0, 0, nowtime.Location())
err := client.Where(" LOGIN_DATE > ? AND LOGIN_DATE < ?", afterTime, nowtime).Limit(5).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseBetween() {
// between and
client := sqlDb()
ub := &[]Userbase{}
nowtime := time.Now()
afterTime := time.Date(nowtime.Year(), nowtime.Month(), nowtime.Day(), 9, 0, 0, 0, nowtime.Location())
err := client.Where(" LOGIN_DATE BETWEEN ? AND ?", afterTime, nowtime).Limit(5).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseByStruct() {
// 查询条件是struct
client := sqlDb()
ub := &[]Userbase{}
err := client.Where(&Userbase{UserId: 1187918, UserName: "qwer0626"}).Find(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func findUserbaseByStructZero() {
// 查询条件有0
client := sqlDb()
ub := &[]Userbase{}
err := client.Where(&Userbase{UserId: 0, UserName: "qwer0626"}).Find(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func findUserbaseByStructNil() {
// 查询条件是指针
client := sqlDb()
ub := &[]Userbase{}
cli := ""
err := client.Where(&Userbase{UserName: "qwer0626", ClientVar: &cli}).Find(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func findUserbaseByMap() {
// 查询条件是map
client := sqlDb()
ub := &[]Userbase{}
err := client.Where(map[string]interface{}{"USER_ID": 1187918, "USER_NAME": "qwer0626"}).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseOr() {
// 查询条件 or
client := sqlDb()
ub := &[]Userbase{}
// err := client.Where("USER_NAME = ? OR USER_ID = ?", "qwer0625", 1187918).Find(&ub).Error
err := client.Where("USER_NAME = ? ").Or("USER_ID = ?", "qwer0625", 1187918).Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseExpr() {
// 子查询
client := sqlDb()
ub := &[]Userbase{}
sub := client.Table("userbase").Select("USER_NAME").Where("USER_ID = ?", 1187918).Find(&ub)
err := client.Where("USER_NAME = (?) ", sub).Find(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase:%+v", ub)
}
查询结果:
func findUserbaseOrder() {
// order
client := sqlDb()
ub := &[]Userbase{}
err := client.Where("USER_NAME like ? ", "%0626").Order("LOGIN_DATE desc").Find(&ub).Error
if err != nil {
panic(err)
}
for _, v := range *ub {
fmt.Printf("userbase: %+v \n", v)
}
}
查询结果:
func findUserbaseScan() {
// scan
client := sqlDb()
var ub Userbase
err := client.Model(&Userbase{}).Where("USER_ID = ? ", 1187918).Scan(&ub).Error
if err != nil {
panic(err)
}
fmt.Printf("userbase: %+v \n", ub)
}
查询结果:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。