[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
	}
相关推荐
Mr_linjw几秒前
MySQL 中监控和优化慢 SQL & 索引小知识
数据库·sql·mysql
小书房1 分钟前
Kotlin的内联函数
java·开发语言·kotlin·inline·内联函数
mftang2 分钟前
BSS段、Data段、Text段的具体含义和数据特性
数据库·算法
码农阿豪5 分钟前
Python 操作金仓数据库的完全指南(上篇):连接管理与高可用
开发语言·数据库·python
雾岛听风6919 分钟前
Sql server
数据库·sql·sqlserver
xyq202411 分钟前
CSS Backgrounds(背景)
开发语言
Aurorar0rua23 分钟前
CS50 x 2024 Notes C - 06
开发语言·学习方法
xyq202425 分钟前
SQLite Like 子句详解
开发语言
Highcharts.js25 分钟前
线形比赛积分增长或竞赛图|Highcharts企业图表代码示列
开发语言·前端·javascript·折线图·highcharts·竞赛图
X566127 分钟前
SQL注入防御技术方案_基于正则表达式的输入清洗
jvm·数据库·python