所以,我有一个相当复杂的查询,我正在尝试调试,但对于一个简单的例子,假设我有这样的东西:
q := "SELECT id FROM users WHERE timestamp > ? AND timestamp < ?"
我将以通常的方式对此执行 Query((,例如
db.Query(q, 1546300800,1561127488)
我想记录/println/任何(用于调试(插值查询,最终得到
SELECT id FROM users WHERE timestamp > 1546300800 AND timestamp < 1561127488
想知道是否有人在这里对我有诀窍。
根据@mkopriva的评论,
不在 Go 中,因为它不进行插值,查询字符串和参数值都会发送到执行插值的数据库服务器。因此,如果数据库服务器不提供这样的功能,那么您就不走运了。或者,您可以尝试搜索执行插值的第三方包,但是如果您找到一个,请记住,为了准确起见,它需要跟上目标服务器的版本,如果不这样做,您可能会看到与正在执行的实际查询不匹配的日志
我无法使用工具完成此操作,因为 go 永远不会有插值查询。坚持将非插值查询与一堆参数一起吐出。