douzhengyi5022
2019-05-23 18:12
浏览 326

Golang中的MySQL空值

How have you solved the issue around LEFT JOIN's and null values with MySQL and Go?

For example I have two tables order and order_item. All columns have the not null attribute. An order can have 0 or more order_items. A simple select, left join query of an order without any order_items fails Row.Scan() because the order_item columns come back as null:

SELECT * FROM `order`
LEFT JOIN `order_item` USING (order_id)
WHERE `order`.order_id = '123'

I can see three solutions, none that I think are really good:

  1. Use COALESCE/IFNULL => Annoying because my select part of the query is automatically generated.
  2. Use the null values from mysql go lib => This will mean that every value in my order_item struct will be of these types.
  3. Split the query into 2 => Problem if I want a list of 50 orders with order_items, that will be 51 queries.

Any other solutions you have?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题