[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
	}
相关推荐
深邃-2 分钟前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5
2401_878530214 分钟前
分布式任务调度系统
开发语言·c++·算法
愤豆4 分钟前
06-Java语言核心-JVM原理-JVM内存区域详解
java·开发语言·jvm
wzhidev4 分钟前
04、Python核心数据类型详解:从一段诡异的调试说起
开发语言·python
luanma1509805 分钟前
Laravel 7.X核心特性深度解析
android·开发语言·php·lua·laravel
Fortune797 分钟前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
@haihi10 分钟前
ESP32 MQTT示例解析
开发语言·网络·mqtt·github·esp32
2401_8785302113 分钟前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
2401_8735449216 分钟前
使用Black自动格式化你的Python代码
jvm·数据库·python
艾莉丝努力练剑16 分钟前
【MYSQL】MYSQL学习的一大重点:表的约束
linux·运维·服务器·开发语言·数据库·学习·mysql