mysql如何獲取數(shù)據(jù)列值(int和string)最大值
最近在開發(fā)項目的時候有這么個需求,我數(shù)據(jù)庫里面存了很多升級包,升級包有列數(shù)據(jù)表示的是升級包的版本號,類型屬于字符串,結(jié)構(gòu)類似于V1.0.2.22這種,然后后臺有個任務(wù)需要獲取最新版本號的那條數(shù)據(jù)。最開始的時候我不知道數(shù)據(jù)庫居然對字符串類型的數(shù)據(jù)也可以篩選大小,之前一直覺得只有int型的數(shù)據(jù)才可以直接從數(shù)據(jù)庫里面回去最大最小值。然后當(dāng)我不知道的情況下,做法就很復(fù)雜了,把存儲的所有版本號全部取出來,然后再按字符串的位進(jìn)行逐一對比,最后篩選出最新也是版本號最大的版本,最后發(fā)現(xiàn)數(shù)據(jù)庫直接就可以操作。
mysql查詢方法果然神奇,居然可以給篩選出字符串的max的功能,只能說是牛逼?。?!
方法如下:原生的mysql語句是這樣的:
SELECT max(agent_ver) FROM versionpackage;
我用mysql workbench測試的截圖如下:
如果是查詢類型為int型的數(shù)據(jù),直接把max括號里的key值改成類型為int的key值即可
我們后臺開發(fā)用的是golang,mysql組件是gorm,先附上使用go代碼查詢最新版本號數(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á)清楚就行了,簡單解釋一下,如果你只需要獲取到最新版本號那個字符串,那么只需要前段代碼即可,maxVer即是獲取到的最新版本號;我項目中是需要獲取最新版本號的整條數(shù)據(jù),所以下面我又根據(jù)版本號獲取了整條數(shù)據(jù),本來是想一次訪問獲取最新版本號的最新數(shù)據(jù)的,奈何沒有試成功,才又調(diào)用了一次,有可以一次就可以查詢出版本號最新的整條的數(shù)據(jù)的,歡迎評論區(qū)指出,萬分感激。
備注:
1、查詢整條數(shù)據(jù)的時候代碼里面沒有定義datastruct結(jié)構(gòu)體,這個根據(jù)不同的項目有所不同,此處省略了結(jié)構(gòu)體,需要使用的同學(xué)需要在前面添加該結(jié)構(gòu)體
2、還有就是如果數(shù)據(jù)庫里面的版本號數(shù)據(jù)為空的時候,使用max查詢最大值的時候會報錯,不知道gorm插件后面是否會修復(fù),我的處理方式是直接在前面再查詢了表中的count數(shù)量,數(shù)量大于0的才執(zhí)行下面的查詢工作
補(bǔ)充:
sql獲取最大值所在的行
要獲取最大值所在的行,可以使用以下SQL查詢語句:
SELECT * FROM table_name WHERE column_name = (SELECT MAX(column_name) FROM table_name);
其中,`table_name`是表的名稱,`column_name`是要查找最大值的列名。這條SQL語句將返回具有最大值的行。
到此這篇關(guān)于mysql獲取數(shù)據(jù)列值(int和string)最大值的文章就介紹到這了,更多相關(guān)mysql獲取數(shù)據(jù)列值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Win10下免安裝版MySQL8.0.16的安裝和配置教程圖解
這篇文章主要介紹了Win10下免安裝版MySQL8.0.16的安裝和配置 ,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考解決價值,需要的朋友可以參考下2019-06-06Centos7.3下mysql5.7.18安裝并修改初始密碼的方法
這篇文章主要為大家詳細(xì)介紹了Centos7.3下mysql5.7.18安裝并修改初始密碼的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Windows10 64位安裝MySQL5.6.35的圖文教程
這篇文章主要介紹了Windows10 64位安裝MySQL5.6.35的圖文教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02