[go-zero] 子查询,使用到Squirrel包

使用到

实现sql:

SELECT count(1) FROM (SELECT 1 FROM tb_map_total WHERE deleted = 0 AND seasonId IN (1000016) AND stageIdList IN ('10008','10007') GROUP BY useMapId) AS tmp

Go 复制代码
	subBuilder := squirrel.Select("1").From(m.table).Where(squirrel.Eq{"deleted": 0})
	if len(seasonIdList) > 0 {
		subBuilder = subBuilder.Where(squirrel.Eq{"seasonId": seasonIdList})
	}
	if len(stageIdList) > 0 {
		subBuilder = subBuilder.Where(squirrel.Eq{"stageIdList": stageIdList})
	}
	subBuilder = subBuilder.GroupBy("useMapId")

	builder := squirrel.Select("count(1)").FromSelect(subBuilder, "tmp")

	sql, args, err := builder.ToSql()

	if err != nil {
		return 0
	}

	var resp int64

	err = m.conn.QueryRowCtx(ctx, &resp, sql, args...)

	switch err {
	case nil:
		return resp
	default:
		return 0
	}
相关推荐
SHolmes185411 分钟前
给定某日的上班时间段,计算当日的工作时间总时长(Python)
开发语言·前端·python
咖啡の猫19 分钟前
Python字典元素的增、删、改操作
java·开发语言·python
gugugu.24 分钟前
Redis持久化机制详解(二):AOF持久化全解析
数据库·redis·缓存
Hello.Reader26 分钟前
Flink SQL 的 RESET 语句一键回到默认配置(SQL CLI 实战)
数据库·sql·flink
Lucky小小吴27 分钟前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
摇滚侠30 分钟前
Redis 零基础到进阶,Redis 事务,Redis 管道,Redis 发布订阅,笔记47-54
数据库·redis·笔记
UVM_ERROR31 分钟前
UVM实战:RDMA Host侧激励开发全流程问题排查与解决
服务器·网络·数据库
一 乐1 小时前
智慧医药|基于springboot + vue智慧医药系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
ytttr8731 小时前
基于 C# WinForm 实现的 电影院售票系统
开发语言·c#
Tony Bai1 小时前
Goroutine “气泡”宇宙——Go 并发模型的新维度
开发语言·后端·golang