package main

import (

"database/sql"

"fmt"

_ "github.com/go-sql-driver/mysql"

)

func main() {

//连接数据库

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

if err != nil {

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

return

}

defer db.Close()

//查询数据库

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

if err != nil {

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

return

}

defer query.Close()

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

cols, _ := query.Columns()

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

values := make([][]byte, len(cols))

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

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

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

for i := range values {

scans[i] = &values[i]

}

//最后得到的map

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

i := 0

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

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

fmt.Println(err)

return

}

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

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

key := cols[k]

row[key] = string(v)

}

results[i] = row //装入结果集中

i++

}

//查询出来的数组

for k, v := range results {

fmt.Println(k, v)

}

db.Close() //用完关闭

}

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

go mysql 条件查询_go-sql-driver包 实现mysql不定字段查询相关推荐

  1. mysql count if语句_COUNT分组条件去重的sql统计语句示例(mysql)

    常规情况下的sql分组统计为: select count(1) from 表 where 条件 group by 字段; 但是有时往往需要添加不同的条件已经去重的统计以上语句就不能满足需求. 解决方案 ...

  2. mysql桦仔_Microsoft SQL Server 2005技术内幕:T-SQL查询笔记

    Microsoft SQL Server 2005技术内幕:T-SQL查询笔记 目录 f f f f f f f f 第二章 物理查询处理 分析,代数化,查询优化 f f f f f. 分析--> ...

  3. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)

    站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...

  4. mysql sniffer 源码_MySQL 抓包工具 - MySQL Sniffer 使用小结 (含带general_log日志)

    在mysql运维工作中,一般会使用tcpdump做一些分析(直接读分析日志比较难以看明白,在数据库连接值高时使用):对于mysql实时的连接监控分析,通常会使用"mysqladmin/sho ...

  5. c++ mysql 导入sql_mysql导入sql文件命令和mysql远程登陆使用详解

    在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram ...

  6. sqldeveloper mysql迁移_通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤

    通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤 发布时间:2020-06-08 15:52:18 来源:51CTO 阅读:210 作者:三月 本篇文章给大家主要讲的是 ...

  7. linux安装mysql社区版 rpm_linux系统rpm包安装mysql

    最后就是享受你的mysql带来的乐趣: [root@db02 ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor.  Co ...

  8. php实现sql server数据导入到mysql数据库_php实现SQL Server数据导入Mysql数据库(示例)...

    php将mssql的数据导入到mysql数据库中,代码: 代码示例: //连接SQL server数据库 $conn=mssql_connect("localhost"," ...

  9. peewee创建mysql_python – peewee MySQL,如何创建包装SQL构建的ins的自定义字段类型?...

    我想在peewee(通过 MySQL)创建一个自定义UUID字段. 在python中,我使用UUID作为一个六角形字符串,例如: uuid ='110e8400-e29b-11d4-a716-4466 ...

最新文章

  1. 如果理解运算符和各类数值的布尔值
  2. SAP MM 评估类型 评估类别
  3. [bzoj3926][Zjoi2015]诸神眷顾的幻想乡
  4. 第七章 字典和集合[DDT书本学习 小甲鱼]【2】
  5. word List 43
  6. AK的故事之英语学习篇(mistake)
  7. 快速排序时间复杂度分析
  8. Jquery 提交表单
  9. c语言char str什意思,char *str与*str的区别
  10. 【WSN通信】基于matlab A_Star改进LEACH多跳传输协议【含Matlab源码 487期】
  11. Rosalind第68题:Counting Optimal Alignments
  12. C++---之waitKey()函数
  13. 为什么不建议把数据库部署在 Docker 容器内?
  14. 抓取国家统计局2018年的省市区街道数据
  15. Android的焦点(Focus)问题 focusable
  16. python无人驾驶_无人驾驶技术入门(四):无人车传感器 IMU 深入剖析
  17. Pandownload 下线了,我花了 30 分钟自己搭建了一个网盘!
  18. 阿里大数据揭秘 谁在疯抢余额宝
  19. java编码转换 解决日文乱码
  20. 关于freetype的移植和其官方demos的使用总结

热门文章

  1. SpringDataJPA入门就这么简单
  2. Java实例练习——基于UDP协议的多客户端通信
  3. android自定义样式大全:shape,selector,layer-list,style,动画全部内容
  4. Maven pom.xml中的元素modules、parent、properties以及import
  5. LR实战之Discuz开源论坛——网页细分图结果分析(Web Page Diagnostics)
  6. Jquery .net MVC
  7. apache 支持 php5
  8. Python基础案例练习:掷骰子小游戏
  9. 分布式消息中间件rocketmq的原理与实践
  10. 微服务的一种开源实现方式——dubbo+zookeeper