go - 寻找一种在 golang mysql 中查看插值查询的方法
问题描述
所以,我有一个相当复杂的查询,我正在尝试调试,但是对于一个简单的例子,假设我有这样的事情:
q := "SELECT id FROM users WHERE timestamp > ? AND timestamp < ?"
我将以通常的方式对此进行 Query() ,例如
db.Query(q, 1546300800,1561127488)
我想记录/println/whatever(用于调试)插值查询,最终得到
SELECT id FROM users WHERE timestamp > 1546300800 AND timestamp < 1561127488
想知道这里是否有人对我有窍门。
解决方案
根据@mkopriva 的评论,
不在 Go 中,因为它不进行插值,查询字符串和参数值都被发送到进行插值的 db 服务器。因此,如果数据库服务器不提供这样的功能,那么你就不走运了。或者,您可以尝试搜索进行插值的 3rd 方包,但是如果您找到一个,请记住,为了准确,它需要跟上目标服务器的版本,如果不这样做,您可能会看到日志与正在执行的实际查询不匹配
我无法使用工具完成此操作,因为 go 从来没有插值查询。坚持吐出非插值查询以及一堆论据。
推荐阅读
- spring - 如何正确构建 Spring Boot / Kafka 应用程序,以防止应用程序关闭?
- python - Python 调试器 (pdb) 编码
- excel - 如何检查“afile.xlsm:2”是否已经打开 VBA
- firebase - Firebase 基于纯 Go 语言的身份验证 | 戈朗
- python-2.7 - 如何修复 imaplib 返回难以理解的文本(可能是 base64)?
- android - MoPub 原生广告和 Facebook 的“未找到广告”
- javascript - 如何在 Java 中使用 Selenium WebDriver 访问 Canvas 元素内的元素?
- windows - terraform 构建 ec2 窗口
- python - 安排Asyncio任务每X秒执行一次?
- python - Apache Beam python Bigquery将流式插入更改为批量插入?