[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
	}
相关推荐
wWYy.5 分钟前
详解redis(15):缓存雪崩
数据库·redis·缓存
zzcufo8 分钟前
多邻国第五阶段第13部分
java·开发语言·数据库
37方寸16 分钟前
前端基础知识(JavaScript)
开发语言·前端·javascript
这周也會开心22 分钟前
Redis相关知识点
数据库·redis·缓存
Whisper_Sy36 分钟前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 应用列表实现
android·开发语言·javascript·flutter·php
小白爱运维37 分钟前
MySQL升级8.0.44后登录报错-系统表不支持'MyISAM'存储引擎
数据库·mysql
小CC吃豆子41 分钟前
Python爬虫
开发语言·python
机器视觉知识推荐、就业指导1 小时前
Qt 6 所有 QML 类型(官方完整清单 · 原始索引版)
开发语言·qt
json{shen:"jing"}1 小时前
1. 两数之和
前端·javascript·数据库
techdashen1 小时前
Rust OnceCell 深度解析:延迟初始化的优雅解决方案
开发语言·oracle·rust