猿问

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

以下代码返回错误:


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 ? ")


我怎样才能逃脱这个%标志?


慕哥6287543
浏览 111回答 1
1回答

子衿沉夜

我怎样才能逃脱 %sign ?问题不在于百分号,问题在于它?在string literal内部,这使其成为文字问号而不是参数占位符。并且由于该语句不将文字问号识别为参数占位符,因此它不需要参数,这就是错误显示的原因:expected 0 arguments。要添加%到参数中,您至少有两个选择:将百分号添加到 Go 参数market_hash_name中,例如stmt.Query("%"+market_hash_name+"%")将百分号连接到?SQL 字符串中的CONCAT('%',&nbsp;?,&nbsp;'%')
随时随地看视频慕课网APP

相关分类

Go
我要回答