mysql - 如何在GORM上使用mysql Union All?

标签 mysql go go-gorm

我正在处理复杂的结构数据库,更新后我们开始使用 GORM,所以我需要使用 GORM 转换这个脚本。

query := `
  SELECT * FROM foo
  UNION ALL
  SELECT * FROM bar WHERE id=1`
rows, err := db.Query(query)
最好的方法是什么?

最佳答案

请注意 gorm不支持 UNION直接使用,需要使用 db.Raw 做工会:

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

关于mysql - 如何在GORM上使用mysql Union All?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67190972/

相关文章:

postgresql - 使用 ORM 将任意数据检索到嵌套对象中

GORM : cannot INSERT into generated column

php - 在linux上安装mysql

arrays - 声明数组大小是否明确确定按值传递还是按引用传递?

mysql - 为什么 innodb 缓冲池内存在命令 "optimize table"之后增长?

performance - 避免在 Go 并发环境中处理重复消息的基准测试方法

go - fmt.Println 中的可变参数扩展

go - 在事务中创建一对一关联

javascript - 将 imagemapster 脚本中的数据保存到 mysql 数据库

php - 仅显示数据库中的最新条目并每 5 分钟不断检查更新