如何在Go中的sqlx查询中使用通配符?

Kar*_*lom 4 go sqlx

我正在使用sqlx与mysql数据库,并希望查询author表中以某些字母开头的名称.这是查询:

sqlx.DB.Select(&authors, "SELECT * FROM author WHERE first_name LIKE ?% OR last_name LIKE ?%", letter,letter)
Run Code Online (Sandbox Code Playgroud)

但我明白了

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'%OR last_name LIKE?%'附近使用正确的语法

我查看了文档中的LIKE查询示例,但找不到任何查询.所以想知道如何解决这个问题?

Cet*_*soz 7

你必须%在那里,岂不是那些?,?或者:p1,:p2,$1,$2(无论MySQL的参数占位符)

我想这样做:

sqlx.DB.Select(&authors, "SELECT * FROM author WHERE first_name LIKE ? OR last_name LIKE ?",
    letter+"%",letter+"%")
Run Code Online (Sandbox Code Playgroud)

通配符%应该是参数字符串的一部分.