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获取数据列值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Win10下免安装版MySQL8.0.16的安装和配置教程图解

    Win10下免安装版MySQL8.0.16的安装和配置教程图解

    这篇文章主要介绍了Win10下免安装版MySQL8.0.16的安装和配置 ,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考解决价值,需要的朋友可以参考下
    2019-06-06
  • Centos7.3下mysql5.7.18安装并修改初始密码的方法

    Centos7.3下mysql5.7.18安装并修改初始密码的方法

    这篇文章主要为大家详细介绍了Centos7.3下mysql5.7.18安装并修改初始密码的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 基于mysq字段选择的详解

    基于mysq字段选择的详解

    本篇文章是对mysq字段选择进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql增加和删除索引的相关操作

    mysql增加和删除索引的相关操作

    下面小编就为大家带来一篇mysql增加和删除索引的相关操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux下如何实现Mysql定时任务

    Linux下如何实现Mysql定时任务

    这篇文章主要介绍了Linux下如何实现Mysql定时任务,需要的朋友可以参考下
    2018-04-04
  • mysql双游标嵌套循环方式

    mysql双游标嵌套循环方式

    这篇文章主要介绍了mysql双游标嵌套循环方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Mysql分区创建与删除方式

    Mysql分区创建与删除方式

    本文详细介绍了如何在MySQL中创建和删除分区的实例代码,通过实际操作示例,帮助读者理解分区的创建与管理方法,从而更好地优化数据库性能
    2025-02-02
  • Windows10 64位安装MySQL5.6.35的图文教程

    Windows10 64位安装MySQL5.6.35的图文教程

    这篇文章主要介绍了Windows10 64位安装MySQL5.6.35的图文教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • MySQL5.7 JSON类型使用详解

    MySQL5.7 JSON类型使用详解

    MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析。 我们先看看MySQL老版本的JSON存取方式,具体内容详情大家参考下本文吧
    2017-10-10
  • mysql 8.0.25之取巧解决修改密码报错的问题

    mysql 8.0.25之取巧解决修改密码报错的问题

    这篇文章主要介绍了mysql8.0.25之取巧解决修改密码报错的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05

最新评论