sql数据库,go mysql 条件查询_go-sql-driver包 实现mysql不定字段查询

 2023-09-26 阅读 28 评论 0

摘要:package mainimport ("database/sql""fmt"sql数据库、_ "github.com/go-sql-driver/mysql")func main() {//连接数据库db, err := sql.Open("mysql", "root:@tcp(localhost:3306)/go?charset=utf8")MySQL查询语句?if er

package main

import (

"database/sql"

"fmt"

sql数据库、_ "github.com/go-sql-driver/mysql"

)

func main() {

//连接数据库

db, err := sql.Open("mysql", "root:@tcp(localhost:3306)/go?charset=utf8")

MySQL查询语句?if err != nil {

fmt.Println("连接数据库失败", err.Error())

return

}

defer db.Close()

grab driver,//查询数据库

query, err := db.Query("select * from go_user")

if err != nil {

fmt.Println("查询数据库失败", err.Error())

return

mysql运行sql文件。}

defer query.Close()

//读出查询出的列字段名

cols, _ := query.Columns()

//values是每个列的值,这里获取到byte里

Mysql查询、values := make([][]byte, len(cols))

//query.Scan的参数,因为每次查询出来的列是不定长的,用len(cols)定住当次查询的长度

scans := make([]interface{}, len(cols))

//让每一行数据都填充到[][]byte里面

for i := range values {

mysql和sql?scans[i] = &values[i]

}

//最后得到的map

results := make(map[int]map[string]string)

i := 0

sql where in,for query.Next() { //循环,让游标往下推

if err := query.Scan(scans...); err != nil { //query.Scan查询出来的不定长值放到scans[i] = &values[i],也就是每行都放在values里

fmt.Println(err)

return

}

mysql workbench、row := make(map[string]string) //每行数据

for k, v := range values { //每行数据是放在values里面,现在把它挪到row里

key := cols[k]

row[key] = string(v)

}

mysql导出sql文件?results[i] = row //装入结果集中

i++

}

//查询出来的数组

for k, v := range results {

sql group by order by一起用,fmt.Println(k, v)

}

db.Close() //用完关闭

}

注:原创者是 http://www.du52.com/text.php?id=562  我做了注释,这样容易看懂点

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/98514.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息