为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 中的 MySQL 空值

Golang 中的 MySQL 空值

Go
月关宝盒 2023-06-19 16:06:56
您如何使用 MySQL 和 Go 解决围绕 's 和 null 值的问题LEFT JOIN?例如我有两个表order和order_item。所有列都具有该not null属性。一个订单可以有 0 个或多个 order_items。没有任何 order_items 的订单的简单选择、左连接查询失败, Row.Scan()因为 order_item 列返回为空:SELECT * FROM `order` LEFT JOIN `order_item` USING (order_id) WHERE `order`.order_id = '123'我可以看到三个解决方案,但我认为没有一个是真正好的:使用COALESCE/ IFNULL=> 烦人,因为我的查询选择部分是自动生成的。使用 mysql go lib 中的空值 => 这意味着我的 order_item 结构中的每个值都属于这些类型。将查询拆分为 2 => 问题,如果我想要一个包含 50 个带有 order_items 的订单的列表,那将是 51 个查询。您还有其他解决方案吗?
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以使用选项 2,但不必扫描到您的结构并更改结构的类型,您可以扫描到具有可为空数据类型的临时变量,并根据这些变量的有效性,将它们的值复制到具有不可为空的结构中类型。



查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信