golang语言sql查询保存任意数量字段的数据

2024-06-20 16:44

本文主要是介绍golang语言sql查询保存任意数量字段的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、查询任意列数的表,并输出

func search() {rows, _ := db.Query("select * from users") // 查询数据columns, _ := rows.Columns()               // 查询到的字段名列表values := make([]any, len(columns))        // 根据字段数量,创建接收字段值的列表for i := range columns {                   // 根据字段数量初始化字段值values[i] = new(sql.RawBytes) // 定义值类型为 sql.RawBytesfmt.Print(columns[i], "  ")   // 打印字段名}fmt.Println()     // 换行for rows.Next() { // 循环多行数据rows.Scan(values...)       // 将一行数据赋值for _, d := range values { // 取出一行数据dd, _ := d.(*sql.RawBytes)   // 将任意类型数据转换为sql.RawBytes地址fmt.Print(string(*dd), "  ") // 将sql.RawBytes的地址转换为字符串}fmt.Println()}
}

2、根据输入的sql查找字符串,输出字段名列表、每行数据列表

func search1(sqlstr string) ([]string, [][]string) {var fields []string                 // 存储字段名var datas [][]string                // 存储所有数据行var data []string                   // 临时存储单行数据rows, _ := db.Query(sqlstr)         // 查询数据columns, _ := rows.Columns()        // 查询到的字段名列表values := make([]any, len(columns)) // 根据字段数量,创建接收字段值的列表for i := range columns {            // 根据字段数量初始化字段值values[i] = new(sql.RawBytes)       // 定义值类型为 sql.RawBytesfields = append(fields, columns[i]) // 存储字段名}for rows.Next() { // 循环多行数据rows.Scan(values...)       // 将一行数据赋值for _, d := range values { // 取出一行数据dd, _ := d.(*sql.RawBytes)       // 将任意类型数据转换为sql.RawBytes地址data = append(data, string(*dd)) // 存储单行数据}datas = append(datas, data) // 将单行数据添加到数据列表data = []string{}           // 单行数据清零}return fields, datas            // 返回字段值列表、每行数据列表
}

这篇关于golang语言sql查询保存任意数量字段的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078685

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

房产证 不动产查询

陕西政务服务网(便民服务)陕西政务服务网(手机版?更直观)不动产权证书|不动产登记证明(电子证照)商品房合同备案查询权利人查询

mysql索引四(组合索引)

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;组合索引,即一个索引包含多个列。 因为有事,下面内容全部转自:https://www.cnblogs.com/farmer-cabbage/p/5793589.html 为了形象地对比单列索引和组合索引,为表添加多个字段:    CREATE TABLE mytable( ID INT NOT NULL, use

mysql索引三(全文索引)

前面分别介绍了mysql索引一(普通索引)、mysql索引二(唯一索引)。 本文学习mysql全文索引。 全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用【分词技术】等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。 在MySql中,创建全文索引相对比较简单。例如:我们有一个文章表(article),其中有主键ID(

mysql索引二(唯一索引)

前文中介绍了MySQL中普通索引用法,和没有索引的区别。mysql索引一(普通索引) 下面学习一下唯一索引。 创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。唯一索引可以有多个但索引列的值必须唯一,索引列的值允许有空值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE,把它定义为一个唯一索引。 添加数据库唯一索引的几种

mysql索引一(普通索引)

mysql的索引分为两大类,聚簇索引、非聚簇索引。聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引则不同。聚簇索引能够提高多行检索的速度、非聚簇索引则对单行检索的速度很快。         在这两大类的索引类型下,还可以降索引分为4个小类型:         1,普通索引:最基本的索引,没有任何限制,是我们经常使用到的索引。         2,唯一索引:与普通索引

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达