Select 带有空字符串的golang gorp选择失败
我像t一样定义order结构Select 带有空字符串的golang gorp选择失败,select,go,nullable,gorp,Select,Go,Nullable,Gorp,我像t一样定义order结构 type Order struct { Id nullString `db:"O_ID"` CusTel int64 `db:"O_CUS_TEL"` } 当我调用时,我安装了一个Order对象作为Order:dbmap.SelectInt(“SELECT count(*)FROM ORDERS WHERE O_ID=?”,O.ID) 我犯了这样的错误: [gorp] SELECT count(*) FROM ORDERS W
type Order struct {
Id nullString `db:"O_ID"`
CusTel int64 `db:"O_CUS_TEL"`
}
当我调用时,我安装了一个Order对象作为Order:dbmap.SelectInt(“SELECT count(*)FROM ORDERS WHERE O_ID=?”,O.ID)
我犯了这样的错误:
[gorp] SELECT count(*) FROM ORDERS WHERE O_ID=? []
Search order by id:{{00000001 true}} fail:Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
但如果我这样使用它:
dbmap.Db.Exec("SELECT count(*) FROM ORDERS WHERE O_ID=?",o.Id)
完成了
我不知道为什么?你的
空字符串是什么类型的?它与sql.NullString
一起工作吗?NullString定义:键入NullString struct{sql.NullString}您的NullString
类型不是隐式等同于sql.NullString
:-要么类型强制转换它,要么(更好)使用sql.NullString
,这对其他人来说更清楚。我使用NullString,因为我需要这个结构,所以可以将它转换为Json。我这样定义它:type NullString struct{sql.NullString}func(s*NullString)UnmarshalJSON(data[]字节)error{s.String=strings.Trim(String(data),
“)//fmt.Printf(“JsonValue:%v”,String(data))//s.String=String(data)s.Valid=true返回nil}func(s NullString)MarshalJSON()([]字节,error){return json.Marshal(s.String)}
您的nullString
是什么类型?它是否与sql.nullString
一起工作?nullString定义:type nullString struct{sql.nullString}您的nullString
类型不是隐式等同于sql.nullString
:-类型强制转换它或(更好)只需使用sql.NullString
,这会让其他人看得更清楚。我使用NullString,因为我需要这个结构,这个结构可以传输到Json。我这样定义它:键入NullString struct{sql.NullString}func(s*NullString)UnmarshalJSON(数据[]字节)错误{s.String=strings.Trim(String(数据),
“)//fmt.Printf(“JsonValue:%v”,string(data))//s.string=string(data)s.Valid=true返回nil}func(s NullString)MarshalJSON()([]字节,错误){return json.Marshal(s.string)}