mysql如何获取数据列值(int和string)最大值

 更新时间:2024年01月29日 10:18:58   作者:Jelly-小丑鱼  
最近在开发项目的时候有个需求,我数据库里面存了很多升级包,升级包有列数据表示的是升级包的版本号,类型属于字符串,结构类似于V1.0.2.22这种,然后后台有个任务需要获取最新版本号的那条数据,本文给大家介绍mysql获取数据列值(int和string)最大值,感兴趣的朋友一起看看吧

最近在开发项目的时候有这么个需求,我数据库里面存了很多升级包,升级包有列数据表示的是升级包的版本号,类型属于字符串,结构类似于V1.0.2.22这种,然后后台有个任务需要获取最新版本号的那条数据。最开始的时候我不知道数据库居然对字符串类型的数据也可以筛选大小,之前一直觉得只有int型的数据才可以直接从数据库里面回去最大最小值。然后当我不知道的情况下,做法就很复杂了,把存储的所有版本号全部取出来,然后再按字符串的位进行逐一对比,最后筛选出最新也是版本号最大的版本,最后发现数据库直接就可以操作。

mysql查询方法果然神奇,居然可以给筛选出字符串的max的功能,只能说是牛逼!!!

方法如下:原生的mysql语句是这样的:

SELECT max(agent_ver) FROM versionpackage;

我用mysql workbench测试的截图如下:

如果是查询类型为int型的数据,直接把max括号里的key值改成类型为int的key值即可

我们后台开发用的是golang,mysql组件是gorm,先附上使用go代码查询最新版本号数据的主要代码

var maxVer string
dbmax := GormDbMysql.Table("versionpackage")
res := dbmax.Select("MAX(agent_ver)").Scan(&maxVer)
if res.Error != nil {
	return
}
db := GormDbMysql.Table("versionpackage")
res = db.Where("agent_ver = ?", maxVer).Find(&datastruct)
if res.Error != nil {
	return
}

代码很少,表达清楚就行了,简单解释一下,如果你只需要获取到最新版本号那个字符串,那么只需要前段代码即可,maxVer即是获取到的最新版本号;我项目中是需要获取最新版本号的整条数据,所以下面我又根据版本号获取了整条数据,本来是想一次访问获取最新版本号的最新数据的,奈何没有试成功,才又调用了一次,有可以一次就可以查询出版本号最新的整条的数据的,欢迎评论区指出,万分感激。

备注:

1、查询整条数据的时候代码里面没有定义datastruct结构体,这个根据不同的项目有所不同,此处省略了结构体,需要使用的同学需要在前面添加该结构体

2、还有就是如果数据库里面的版本号数据为空的时候,使用max查询最大值的时候会报错,不知道gorm插件后面是否会修复,我的处理方式是直接在前面再查询了表中的count数量,数量大于0的才执行下面的查询工作

补充:

sql获取最大值所在的行

要获取最大值所在的行,可以使用以下SQL查询语句:

SELECT * 
FROM table_name 
WHERE column_name = (SELECT MAX(column_name) FROM table_name);

其中,`table_name`是表的名称,`column_name`是要查找最大值的列名。这条SQL语句将返回具有最大值的行。

到此这篇关于mysql获取数据列值(int和string)最大值的文章就介绍到这了,更多相关mysql获取数据列值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ubuntu下在docker中安装mysql5.6 的方法

    ubuntu下在docker中安装mysql5.6 的方法

    这篇文章主要介绍了ubuntu下在docker中安装mysql5.6 的方法,需要的朋友可以参考下
    2017-05-05
  • Redis与MySQL的双写一致性问题

    Redis与MySQL的双写一致性问题

    这篇文章只要介绍了Redis与MySQL双写一致性,主要是指在使用缓存和数据库同时存储数据的场景下( 主要是存在高并发的情况),如何保证两者的数据一致性(内容相同或者尽可能接近),感兴趣的同学可以借鉴一下
    2023-03-03
  • MySQL 两张表数据合并的实现

    MySQL 两张表数据合并的实现

    本文主要介绍了MySQL 两张表数据合并的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MySQL创建和删除数据库的命令及相关PHP脚本的操作方法

    MySQL创建和删除数据库的命令及相关PHP脚本的操作方法

    这篇文章主要介绍了MySQL创建和删除数据库的命令及相关PHP脚本的操作方法,这里主要讲述Linux中在mysqladmin下的命令操作,需要的朋友可以参考下
    2015-11-11
  • mysql中一个普通ERROR 1135 (HY000)错误引发的血案

    mysql中一个普通ERROR 1135 (HY000)错误引发的血案

    ERROR 1135 (HY000): Can’t create a new thread (errno 11);if you are not out of available memory,you can consult the manual for a possible OS-dependent bug
    2015-08-08
  • Ubuntu下完美实现迁移MySQL数据库位置

    Ubuntu下完美实现迁移MySQL数据库位置

    这篇文章主要介绍了Ubuntu下完美实现迁移MySQL数据库位置,十分详细,有需要的小伙伴可以参考下
    2015-03-03
  • mysql用户管理操作实例分析

    mysql用户管理操作实例分析

    这篇文章主要介绍了mysql用户管理操作,结合实例形式分析了mysql用户管理查看、创建、修改、删除等相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • CentOS7 64位下MySQL5.7安装与配置教程

    CentOS7 64位下MySQL5.7安装与配置教程

    这篇文章主要介绍了CentOS7 64位下MySQL5.7安装与配置教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 老鸟带你开发专业规范的MySQL启动脚本

    老鸟带你开发专业规范的MySQL启动脚本

    这篇文章主要介绍了老鸟带你开发专业规范的MySQL启动脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Mac下mysql5.7.10安装教程

    Mac下mysql5.7.10安装教程

    这篇文章主要为大家详细介绍了Mac下mysql5.7.10安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论