如何从dbr golang查询构建器中提取原始查询

时间:2018-10-26 07:03:28

标签: mysql database go

我是golang dbr库(https://godoc.org/github.com/gocraft/dbr)的新手 而且我没有找到有关如何使用此库获取原始查询的信息。

我需要与php点火器中的get_compiled_select()类似的东西。我需要它以结合多个复杂的查询。

3 个答案:

答案 0 :(得分:1)

以下内容将转储查询...

stmt := session.Select("*").From(table).Where("id = ?", ...)

buf := dbr.NewBuffer()
_ = stmt.Build(stmt.Dialect, buf)
fmt.Println(buf.String())

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

答案 1 :(得分:0)

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

希望对您有帮助。

答案 2 :(得分:0)

我不确定先前的答案(将结构设为公共)是明智的解决方案,即使可行。

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

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

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