以下代码返回错误:stmt, err := DBCon.Prepare("SELECT * FROM item WHERE market_hash_name LIKE '%?%' ")handle_error(err)res, err := stmt.Query(market_hash_name)错误: 2022/07/09 19:57:56 http: panic serving <ip> sql: expected 0 arguments, got 1这个声明有效:stmt, err := DBCon.Prepare("SELECT * FROM item WHERE market_hash_name LIKE ? ")我怎样才能逃脱这个%标志?
1 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
我怎样才能逃脱 %sign ?
问题不在于百分号,问题在于它?
在string literal内部,这使其成为文字问号而不是参数占位符。并且由于该语句不将文字问号识别为参数占位符,因此它不需要参数,这就是错误显示的原因:expected 0 arguments
。
要添加%
到参数中,您至少有两个选择:
将百分号添加到 Go 参数
market_hash_name
中,例如
stmt.Query("%"+market_hash_name+"%")
将百分号连接到
?
SQL 字符串中的
CONCAT('%', ?, '%')
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消