Mysql 如何从dbr golang查询生成器中提取原始查询

Mysql 如何从dbr golang查询生成器中提取原始查询,mysql,database,go,Mysql,Database,Go,我对golangdbrlibrary() 我没有找到关于如何使用这个库获取原始查询的信息 我需要类似于php igniter的get\u compiled\u select()。我需要它将多个复杂查询与union结合起来。u可以将expr中的原始结构设置为public 我希望它能对你有所帮助。我不确定前面的答案(将结构设置为public)是否是明智的解决方案,即使这是可行的 在我看来,更好的解决方案是在select.go中创建新的getter函数 func (sel *SelectStmt) G

我对golang
dbr
library() 我没有找到关于如何使用这个库获取原始查询的信息


我需要类似于php igniter的
get\u compiled\u select()
。我需要它将多个复杂查询与union结合起来。

u可以将expr中的原始结构设置为public


我希望它能对你有所帮助。

我不确定前面的答案(将结构设置为public)是否是明智的解决方案,即使这是可行的

在我看来,更好的解决方案是在select.go中创建新的getter函数

func (sel *SelectStmt) GetRaw() string {
return sel.raw.Query 
}

使用此方法,应该更易于维护。

以下内容将转储查询

stmt:=session.Select(“*”).From(表)。其中(“id=?”,…)
buf:=dbr.NewBuffer()
_=stmt.Build(stmt.dialogue,buf)
fmt.Println(buf.String())
//打印插值
对于uv:=范围stmt.WhereCond{
fmt.Println(五)
}

请注意,输出将不包括插值。

除非您正在编辑dbr包本身,否则无法执行此操作。除非您正在编辑dbr包本身的内部,否则无法执行此操作。stmt.dialogue不是有效的属性,请使用
github.com/mailru/dbr
,导入
github.com/mailru/dbr/dialogue
,然后使用
方言.Sqlite
作为例子。不管怎样,投票结果是一致的。