mysql如何獲取數(shù)據(jù)列值(int和string)最大值
最近在開發(fā)項(xiàng)目的時(shí)候有這么個(gè)需求,我數(shù)據(jù)庫(kù)里面存了很多升級(jí)包,升級(jí)包有列數(shù)據(jù)表示的是升級(jí)包的版本號(hào),類型屬于字符串,結(jié)構(gòu)類似于V1.0.2.22這種,然后后臺(tái)有個(gè)任務(wù)需要獲取最新版本號(hào)的那條數(shù)據(jù)。最開始的時(shí)候我不知道數(shù)據(jù)庫(kù)居然對(duì)字符串類型的數(shù)據(jù)也可以篩選大小,之前一直覺得只有int型的數(shù)據(jù)才可以直接從數(shù)據(jù)庫(kù)里面回去最大最小值。然后當(dāng)我不知道的情況下,做法就很復(fù)雜了,把存儲(chǔ)的所有版本號(hào)全部取出來,然后再按字符串的位進(jìn)行逐一對(duì)比,最后篩選出最新也是版本號(hào)最大的版本,最后發(fā)現(xiàn)數(shù)據(jù)庫(kù)直接就可以操作。
mysql查詢方法果然神奇,居然可以給篩選出字符串的max的功能,只能說是牛逼?。?!
方法如下:原生的mysql語(yǔ)句是這樣的:
SELECT max(agent_ver) FROM versionpackage;
我用mysql workbench測(cè)試的截圖如下:

如果是查詢類型為int型的數(shù)據(jù),直接把max括號(hào)里的key值改成類型為int的key值即可
我們后臺(tái)開發(fā)用的是golang,mysql組件是gorm,先附上使用go代碼查詢最新版本號(hào)數(shù)據(jù)的主要代碼
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
}代碼很少,表達(dá)清楚就行了,簡(jiǎn)單解釋一下,如果你只需要獲取到最新版本號(hào)那個(gè)字符串,那么只需要前段代碼即可,maxVer即是獲取到的最新版本號(hào);我項(xiàng)目中是需要獲取最新版本號(hào)的整條數(shù)據(jù),所以下面我又根據(jù)版本號(hào)獲取了整條數(shù)據(jù),本來是想一次訪問獲取最新版本號(hào)的最新數(shù)據(jù)的,奈何沒有試成功,才又調(diào)用了一次,有可以一次就可以查詢出版本號(hào)最新的整條的數(shù)據(jù)的,歡迎評(píng)論區(qū)指出,萬分感激。
備注:
1、查詢整條數(shù)據(jù)的時(shí)候代碼里面沒有定義datastruct結(jié)構(gòu)體,這個(gè)根據(jù)不同的項(xiàng)目有所不同,此處省略了結(jié)構(gòu)體,需要使用的同學(xué)需要在前面添加該結(jié)構(gòu)體
2、還有就是如果數(shù)據(jù)庫(kù)里面的版本號(hào)數(shù)據(jù)為空的時(shí)候,使用max查詢最大值的時(shí)候會(huì)報(bào)錯(cuò),不知道gorm插件后面是否會(huì)修復(fù),我的處理方式是直接在前面再查詢了表中的count數(shù)量,數(shù)量大于0的才執(zhí)行下面的查詢工作
補(bǔ)充:
sql獲取最大值所在的行
要獲取最大值所在的行,可以使用以下SQL查詢語(yǔ)句:
SELECT * FROM table_name WHERE column_name = (SELECT MAX(column_name) FROM table_name);
其中,`table_name`是表的名稱,`column_name`是要查找最大值的列名。這條SQL語(yǔ)句將返回具有最大值的行。
到此這篇關(guān)于mysql獲取數(shù)據(jù)列值(int和string)最大值的文章就介紹到這了,更多相關(guān)mysql獲取數(shù)據(jù)列值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Win10下免安裝版MySQL8.0.16的安裝和配置教程圖解
這篇文章主要介紹了Win10下免安裝版MySQL8.0.16的安裝和配置 ,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考解決價(jià)值,需要的朋友可以參考下2019-06-06
Centos7.3下mysql5.7.18安裝并修改初始密碼的方法
這篇文章主要為大家詳細(xì)介紹了Centos7.3下mysql5.7.18安裝并修改初始密碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Linux下如何實(shí)現(xiàn)Mysql定時(shí)任務(wù)
這篇文章主要介紹了Linux下如何實(shí)現(xiàn)Mysql定時(shí)任務(wù),需要的朋友可以參考下2018-04-04
Windows10 64位安裝MySQL5.6.35的圖文教程
這篇文章主要介紹了Windows10 64位安裝MySQL5.6.35的圖文教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02
mysql 8.0.25之取巧解決修改密碼報(bào)錯(cuò)的問題
這篇文章主要介紹了mysql8.0.25之取巧解決修改密碼報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

