zoukankan      html  css  js  c++  java
  • go 拼接sql

    
    //原文链接:https://www.jianshu.com/p/a0569157c418
    golang mysql拼接子查询
    
    使用fmt.Sprintf拼接SQL
    实例代码
    
    func Select(ids []string) string {
        idStr := strings.Join(ids, "','")
        sqlText := "select id, name, age, created_at, updated_at from car where id in ('%s') limit %d"
        sqlText = fmt.Sprintf(sqlText, idStr, 20)
        return sqlText
    }
    
    func main() {
        sql := Select([]string{"1", "2", "3"})
        fmt.Println(sql)
    }
    
    //select id, name, age, created_at, updated_at from car where id ('1','2','3') limit 20
    另一种写法,占位符实现
    import (
        "strings"
        "database/sql"
    )
    
    func Select(db *sql.DB, ids []int) (err error) {
        //生成占位符?
        sqlText := "select * from car where id in ("+ strings.TrimRight(strings.Repeat("?,", len(ids)), ",")+")"
        var args []interface{}
        for _, v := range ids {
            args = append(args, v)
        }
        row, err := db.Query(sqlText, args...)
        if err != nil {
            return
        }
        defer row.Close()
        return
    }
    
    
  • 相关阅读:
    gcc/g++命令参数笔记
    周总结
    帆软FineBI试用
    C++输入流
    tt
    linux6 安装oracle11g
    linux下修改/dev/shm tmpfs文件系统大小
    centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    Linux Network配置
    安装KornShell(KSH)
  • 原文地址:https://www.cnblogs.com/lajiao/p/11498606.html
Copyright © 2011-2022 走看看