MySQL對varchar類型數(shù)字進(jìn)行排序的實(shí)現(xiàn)方法
1.問題描述
表中,字段:chapter_number 為varchar,存的值為1,2,3,4,5,10,11,12數(shù)字,進(jìn)行按正序排序時(shí),返回的數(shù)據(jù)為1,10,11,12,2,3,4,5
2.解決方法
your_column :你的字段名
CAST(your_column AS SIGNED);
舉例:
your_table: 你的表名
your_column:你的字段名
SELECT * FROM your_table ORDER BY CAST(your_column AS SIGNED);
3.CAST方法說明
MySQL CAST()函數(shù)用于將值從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種特定數(shù)據(jù)類型。 CAST()函數(shù)接受兩個(gè)參數(shù),即要轉(zhuǎn)換的值和需要將該值轉(zhuǎn)換為的數(shù)據(jù)類型。
可以轉(zhuǎn)換給定值的數(shù)據(jù)類型為:
DATE:用于將值轉(zhuǎn)換為DATE數(shù)據(jù)類型。返回的格式為“YYYY-MM-DD”。
DATETIME:用于將值轉(zhuǎn)換為DATETIME數(shù)據(jù)類型。返回的格式為“ YYYY-MM-DD HH:MM:SS”。
TIME:用于將值轉(zhuǎn)換為TIME數(shù)據(jù)類型。返回的格式為“HH:MM:SS”。
CHAR:用于將值轉(zhuǎn)換為CHAR數(shù)據(jù)類型。
SIGNED:用于將值轉(zhuǎn)換為SIGNED數(shù)據(jù)類型。
UNSIGNED:用于將值轉(zhuǎn)換為UNSIGNED數(shù)據(jù)類型。
BINARY:用于將值轉(zhuǎn)換為BINARY數(shù)據(jù)類型。
用法:
CAST(input_value AS datatype)
使用的參數(shù):
input_value –用于指定需要轉(zhuǎn)換的值。
datatype –它用于指定需要在其中轉(zhuǎn)換值的數(shù)據(jù)類型。
返回值:
轉(zhuǎn)換后,MySQL CAST()函數(shù)返回所需數(shù)據(jù)類型的值。
受支持的MySQL版本:
MySQL 5.7
MySQL 5.6
MySQL 5.5
MySQL 5.1
MySQL 5.0
MySQL 4.1
MySQL 4.0
MySQL 3.23
示例1:實(shí)現(xiàn)CAST()函數(shù)以將值轉(zhuǎn)換為DATE數(shù)據(jù)類型。
SELECT CAST("2019-11-21" AS DATE);
輸出:2019-11-21
示例2:實(shí)現(xiàn)CAST()函數(shù)以將值轉(zhuǎn)換為CHAR數(shù)據(jù)類型。
SELECT CAST(121 AS CHAR); 輸出:121
示例3:實(shí)現(xiàn)CAST()函數(shù)以將值轉(zhuǎn)換為SIGNED數(shù)據(jù)類型。
SELECT CAST(2-4 AS SIGNED); 輸出:-2
示例4:實(shí)現(xiàn)CAST()函數(shù)以將值轉(zhuǎn)換為UNSIGNED數(shù)據(jù)類型。
SELECT CAST(2-4 AS UNSIGNED); 輸出:18446744073709551614
以上就是MySQL對varchar類型數(shù)字進(jìn)行排序的實(shí)現(xiàn)方法的詳細(xì)內(nèi)容,更多關(guān)于MySQL varchar數(shù)字排序的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL 橫向衍生表(Lateral Derived Tables)的實(shí)現(xiàn)
橫向衍生表適用于在需要通過子查詢獲取中間結(jié)果集的場景,相對于普通衍生表,橫向衍生表可以引用在其之前出現(xiàn)過的表名,本文就來介紹一下MySQL 橫向衍生表(Lateral Derived Tables)的實(shí)現(xiàn),感興趣的可以了解一下2025-06-06
解決MySQL數(shù)據(jù)庫中文模糊檢索問題的方法
解決MySQL數(shù)據(jù)庫中文模糊檢索問題的方法...2007-11-11
mysql drop database刪除數(shù)據(jù)庫命令實(shí)例講解
這篇文章主要介紹了mysql drop database刪除數(shù)據(jù)庫命令實(shí)例講解的相關(guān)資料,需要的朋友可以參考下2016-09-09
MySQL時(shí)區(qū)差8小時(shí)的多種問題解決方法
mybatis將本地的數(shù)據(jù)傳入到mysql數(shù)據(jù)庫服務(wù)器的時(shí)候,服務(wù)器會對數(shù)據(jù)進(jìn)行檢測,會把date類型的數(shù)據(jù)自動轉(zhuǎn)換為mysql服務(wù)器所對應(yīng)的時(shí)區(qū),即0時(shí)區(qū),所以會相差8小時(shí),本文給大家介紹了MySQL時(shí)區(qū)差8小時(shí)的問題解決方法,需要的朋友可以參考下2024-01-01
mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié)
本文主要介紹了mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié),文中通過圖表代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08

