我正在使用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查询示例,但找不到任何查询.所以想知道如何解决这个问题?
你必须%在那里,岂不是那些?,?或者: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)
通配符%应该是参数字符串的一部分.