为了账号安全,请及时绑定邮箱和手机立即绑定

在准备好的语句中转义 % 通配符

在准备好的语句中转义 % 通配符

Go
慕哥6287543 2023-01-03 13:49:30
以下代码返回错误: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


要添加%到参数中,您至少有两个选择:

  1. 将百分号添加到 Go 参数market_hash_name中,例如

stmt.Query("%"+market_hash_name+"%")
  1. 将百分号连接到?SQL 字符串中的

CONCAT('%', ?, '%')


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号