V2版本: 改进操作界面,统一表单样式,更多工具支持批量生成,欢迎使用 到达~


文库 阅读
作者: xiaoyu 09/19 01:33:40

在GO语言sqlx包中,如何使用 like 模糊查询?

这样拼接 "%?" 后为什么查询没有结果?

sqlx.DB.Select(&users, "SELECT * FROM user WHERE name LIKE %?% OR email LIKE %?%", keyword,keyword)

实际上是错误的,问号是sqlx的占位符百分号是sql的通配符,硬拼接只会抛出一个异常

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(MISSING) OR email LIKE ? ' at line 1

方法一:

一种方法是从变量入手,改变变量值

sqlx.DB.Select(&users, 
"SELECT * FROM user WHERE name LIKE ? OR email LIKE ?", "%" + keyword + "%", "%" + keyword + "%")

方法二:

一种方法是使用CONCAT

sqlx.DB.Select(&users,
 "SELECT * FROM USER WHERE name LIKE CONCAT(?, '%' ) OR email LIKE CONCAT(?, '%')", keyword, keyword)

About

在Golan github.com/jmoiron/sqlx 包中,解决模糊匹配 LIKE 查询的方法

Resources

发布

未发布任何资源
首页 喜欢 我的 定制
定制咨询
微信二维码
扫一扫上面的二维码,加我为朋友。
微信扫码周一至周六服务
接定制开发需求