golang golang动态db查询更新记录而不反映

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang golang动态db查询更新记录而不反映相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
	"database/sql"
	"encoding/json"
	"strings"
   	"time"
)

type Request struct {
	Name *string
	MediaID *int
    	ProductID *int
    	IsDisabled *int
    	Description *string
}
func main() {
	var (
        	unmurshal map[string]interface{}
		columns []string
		values  []interface{}
	)
    	id := 100
    	data := Request{nil, nil, nil, 1, nil}
    	//column can update
    	columnStr := []string{"name", "media_id", "product_id", "is_disabled"}
    	// easy without reflection only use marhsal
    	vm, _ := json.Marshal(data)
    	_ := json.Unmurshal(vm, &unmurshal)
    	for _, column := range unmarshal {
        	for key, value := range columnStr {
            		if column == key && value != nil {
                		columns = append(columns, fmt.Sprintf("%s ?,", column))
                		values = append(values, value)
            		}
        	}
    	}
    	columns = append(columns, "updated_at + ?")
    	values = append(values, time.Now())
    	values = append(values, id)
    
    	//joining string
    	queryStr := "update my_table set " + strings.Join(columns, " ") + "where id = ? "
    	fmt.Println(queryStr)
}

如何使用 golang 的 mgo 包进行类似查询

【中文标题】如何使用 golang 的 mgo 包进行类似查询【英文标题】:how to do a like query using mgo package for golang 【发布时间】:2015-03-31 05:14:11 【问题描述】:

我正在尝试使用 mgo 进行 like 查询,但没有成功。

我想要的是一个类似于

的mongodb查询
db.organisation.find(  "permalink" : /org.*/  )

我还是卡在

sess.DB(db).C(cApp).
    Find(bson.M"permalink": "org:bms.*").
    All(&m)

【问题讨论】:

【参考方案1】:

使用bson.Regex指定正则表达式值:

sess
  .DB(db)
  .C(cApp)
  .Find(bson.M"permalink": bson.RegEx"org.*", "")
  .All(&m)

【讨论】:

以上是关于golang golang动态db查询更新记录而不反映的主要内容,如果未能解决你的问题,请参考以下文章

golang GoLang数据库SQL:从查询中选择未知数量的列。基准测试结果为db_test.go

如何使用 golang 的 mgo 包进行类似查询

golang配制高性能sql.DB

更新变量时动态刷新模板的一部分golang

对MySQL DB进行动态SQL查询

带有 mgo 的 Go (golang) 中的 MongoDB:如何更新记录、确定更新是不是成功并在单个原子操作中获取数据?