Select 带有空字符串的golang gorp选择失败

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

我像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 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)}