如何在 GORM 上使用 mysql Union All?
How to use mysql Union All on GORM?
我正在处理结构复杂的数据库,更新后我们开始使用 GORM,所以我需要使用 GORM 转换这个脚本。
query := `
SELECT * FROM foo
UNION ALL
SELECT * FROM bar WHERE id=1`
rows, err := db.Query(query)
最好的方法是什么?
注意gorm
不直接支持UNION
,需要用db.Raw
做UNION:
db.Raw("? UNION ?",
db.Select("*").Model(&Foo{}),
db.Select("*").Model(&Bar{}),
).Scan(&union)
以上将产生如下内容:
SELECT * FROM "foos"
WHERE "foos"."deleted_at" IS NULL
UNION
SELECT * FROM "bars"
WHERE "bars"."deleted_at" IS NULL
我正在处理结构复杂的数据库,更新后我们开始使用 GORM,所以我需要使用 GORM 转换这个脚本。
query := `
SELECT * FROM foo
UNION ALL
SELECT * FROM bar WHERE id=1`
rows, err := db.Query(query)
最好的方法是什么?
注意gorm
不直接支持UNION
,需要用db.Raw
做UNION:
db.Raw("? UNION ?",
db.Select("*").Model(&Foo{}),
db.Select("*").Model(&Bar{}),
).Scan(&union)
以上将产生如下内容:
SELECT * FROM "foos"
WHERE "foos"."deleted_at" IS NULL
UNION
SELECT * FROM "bars"
WHERE "bars"."deleted_at" IS NULL