使用xorm更新mysql数据
session.Where("id=?", data.ID).Update(&data)
发现结构体data中其他数据更新了 但0值字段没有更新到数据库中
1.在更新前 打印了data数据 没有问题
2.开启SQL语句打印
xormEngine.ShowSQL(true)
在打印出来的SQL更新语句中
发现了0值字段并没有更新 并且字符串为""的字段也没有更新
3.查询xorm文档
的确说明了 更新非空字段
所以说如果是空字段 无法更新
4.解决方案
在update中找到了一条说明
更新一条或多条记录,默认会更新非空和非零字段,除非使用 Cols、AllCols 等
所以 方法找到了 对于更新所有字段的使用allcols
session.Where("id=?", data.ID).AllCols().Update(&data)
问题解决!