doufan9395 2015-01-20 00:51
浏览 17
已采纳

转到模板以连接切片中的查询

I want to concatenate my SQL query with UNION ALL and golang http://golang.org/pkg/text/template/

For example, I have:

var slice1 = []string{"2014-01-01", "2014-01-02", "2014-01-03"}
var slice2 = []string{"20140101", "20140102", "20140103"}

And query:

select {{.date}} as date, itemid, price
from orderhistory_t{{datetag}}

And using the template I want to create the query like the following:

select '2014-01-01' as date, itemid, price
from orderhistory_t20140101

union all 

select '2014-01-02' as date, itemid, price
from orderhistory_t20140102

union all 

select '2014-01-03' as date, itemid, price
from orderhistory_t20140103

How do I loop through the slice of Golang and put them in the sql template?

Thank you in advance!

  • 写回答

1条回答 默认 最新

  • dpfwhb7470 2015-01-20 01:06
    关注

    I don't think template is the right tool for the job. Just create the query string and join it here is how:

    http://play.golang.org/p/mM0mMfBZFK
    
    package main
    
    import (
        "fmt"
        "strings"
    )
    
    var slice1 = []string{"2014-01-01", "2014-01-02", "2014-01-03"}
    var slice2 = []string{"20140101", "20140102", "20140103"}
    
    func main() {
        var parts []string
        for i := 0; i < len(slice1); i++ {
            parts = append(parts, fmt.Sprintf("select %q as date, itemid, price from orderhistory_t%s", slice1[i], slice2[i]))
        }
        fmt.Println(strings.Join(parts, " union all "))
    }
    

    output:

    select "2014-01-01" as date, itemid, price from orderhistory_t20140101 union all select "2014-01-02" as date, itemid, price from orderhistory_t20140102 union all select "2014-01-03" as date, itemid, price from orderhistory_t20140103

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP