在将查询的字节数组与SqlX一起发送时遇到问题。
我将举一个具体的例子,考虑以下几点:
我有这些哈希值:
hash1 := []byte("84ce419844366f84de5352c257f06e356fe1ee4c4248e774c66cd44a7cf24c84f6492e988287db9fc3e540dac4efbd4813ce6f82afa9f552b1f5d46376dcac30")
hash2 := []byte("84ce419844366f84de5352c257f06e356fe1ee4c4248e774c66cd44a7cf24c84f6492e988287db9fc3e540dac4efbd4813ce6f82afa9f552b1f5d46376dcac30")
hash3 := []byte("84ce419844366f84de5352c257f06e356fe1ee4c4248e774c66cd44a7cf24c84f6492e988287db9fc3e540dac4efbd4813ce6f82afa9f552b1f5d46376dcac30")
hash4 := []byte("84ce419844366f84de5352c257f06e356fe1ee4c4248e774c66cd44a7cf24c84f6492e988287db9fc3e540dac4efbd4813ce6f82afa9f552b1f5d46376dcac30")
这样存储:
hashes := [][]byte{}
hashes = append(txsHashes, txHash1)
hashes = append(txsHashes, txHash2)
hashes = append(txsHashes, txHash3)
hashes = append(txsHashes, txHash4)
现在,我要删除其哈希在哈希数组中的所有行。
查询:
query := "DELETE SomeTable WHERE hash IN (?)"
我正在创建数据库连接:
db := &sqlx.DB{}
sqlDriverStr := "sqlite3"
dataSourcePath := "./mock.db"
sqlDriver, err := sql.Open(sqlDriverStr, dataSourcePath)
if err != nil {
log.Fatal(err)
}
db = sqlx.NewDb(sqlDriver, sqlDriverStr)
err = db.Ping()
if err != nil {
log.Fatal(err)
}
执行查询:
deleteQuery := "DELETE SomeTable WHERE hash IN (?)"
_, err = db.Exec(deleteQuery, txsHashes)
if err != nil {
log.Fatal(err)
}
我回来了一个错误:
2018/12/07 00:57:59 sql:转换参数$ 1类型:不支持的类型[] [] uint8,切片的一部分
任何想法我该怎么办?
谢谢