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

相关文章

  • MySQL主从同步、读写分离配置步骤

    MySQL主从同步、读写分离配置步骤

    根据要求配置MySQL主从备份、读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记
    2012-03-03
  • 一文弄懂MySQL自增主键

    一文弄懂MySQL自增主键

    这篇文章主要介绍了MySQL自增主键,MySQL的自增主键并不一定是连续的,自增值的保存位置和修改机制决定了一种自增值不连续的场景,下面就来具体介绍一下,感兴趣的可以了解一下
    2025-01-01
  • JDBC连接MySQL5.7的方法

    JDBC连接MySQL5.7的方法

    这篇文章主要介绍了JDBC连接MySQL5.7的方法,需要的朋友可以参考下
    2018-05-05
  • 怎样获取MySQL结果集的第一条记录

    怎样获取MySQL结果集的第一条记录

    这篇文章主要介绍了怎样获取MySQL结果集的第一条记录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL关闭SSL的简单方法

    MySQL关闭SSL的简单方法

    这篇文章主要介绍了MySQL关闭SSL的简单方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 解析MySQL中存储时间日期类型的选择问题

    解析MySQL中存储时间日期类型的选择问题

    这篇文章主要介绍了解析MySQL中存储时间日期类型的选择问题,具有一定参考价值,需要的朋友可以了解。
    2017-10-10
  • MySQL的IF函数语法及最佳实践应用

    MySQL的IF函数语法及最佳实践应用

    本文将深入解析IF函数的语法特性、应用场景及最佳实践,助您高效利用这一工具提升SQL编写能力,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • MySQL数据库操作的基本命令

    MySQL数据库操作的基本命令

    这篇文章主要介绍了MySQL使用初步之MySQL数据库的基本命令,需要的朋友可以参考下
    2017-05-05
  • cmd连接mysql的方法详解

    cmd连接mysql的方法详解

    本篇文章是对cmd连接mysql的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql如何在已有数据库上统一字符集

    mysql如何在已有数据库上统一字符集

    这篇文章主要介绍了mysql如何在已有数据库基础上换字符集,数据库里面,部分数据表和数据是latin1的,部分数据表和数据是UTF8,还有部分表,表结构是utf8而数据是latin1,下面说一下,怎么样字符集统一成utf8,需要的朋友可以参考下
    2019-06-06

最新评论