在GORM上使用mysql Union

在处理复杂的查询是用到 or,在mysql中or 可能对索引并不理想,我们可以用union替代。

例子

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

var users []model.User

DB.Raw("? UNION ? UNION ?",
		DB.Model(&model.User{}).
			Where("username = ?", loginId),
		DB.Model(&model.User{}).
			Where("mobile = ?", loginId),
		DB.Model(&model.User{}).
			Where("email = ?", loginId)).
			Find(&users);
posted @ 2023-12-21 11:10  耳东01  阅读(473)  评论(0)    收藏  举报