最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL字符串按照數(shù)值排序方式

 更新時間:2023年08月25日 09:01:14   作者:JustDI-CM  
這篇文章主要介紹了MySQL字符串按照數(shù)值排序方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL字符串按照數(shù)值排序

1.需求

MySQL 有個表字段設(shè)計(jì)的時候,設(shè)置為了 varchar 類型,存取的卻是數(shù)值,后續(xù)有業(yè)務(wù)需要按照此字段排序,獲取最大值。

按照最原始的排序語句為:

SELECT * FROM test_21 a ORDER BY a.testId desc;

結(jié)果為:

這個并不是想要的結(jié)果。

2.方法

改造一下

1)與 int 進(jìn)行計(jì)算

SELECT * FROM test_21 a ORDER BY a.testId+0 desc;
SELECT * FROM test_21 a ORDER BY a.testId-2 desc;
SELECT * FROM test_21 a ORDER BY a.testId*1 desc;
SELECT * FROM test_21 a ORDER BY a.testId/4 desc;

MySQL 的 varchar 與 int 計(jì)算時,會轉(zhuǎn)換為 int。

以上4個 sql 的執(zhí)行結(jié)果都為

2)cast() 或 convert()

SELECT * FROM test_21 a ORDER BY cast(a.testId as SIGNED) desc;
SELECT * FROM test_21 a ORDER BY convert(a.testId,SIGNED) desc;

這兩個函數(shù)都是用于格式轉(zhuǎn)換的,二者沒什么區(qū)別,

語法為:

CAST(expr AS type)
CONVERT(expr,type)

支持的類型有

說明
DATE將expr轉(zhuǎn)換成’YYYY-MM-DD’格式
DATETIME將expr轉(zhuǎn)換成’YYYY-MM-DD HH:MM:SS’格式
TIME將expr轉(zhuǎn)換成’HH:MM:SS’格式
CHAR將expr轉(zhuǎn)換成CHAR(固定長度的字符串)格式
SIGNED將expr轉(zhuǎn)換成INT(有符號的整數(shù))格式
UNSIGNED將expr轉(zhuǎn)換成INT(無符號的整數(shù))格式
DECIMAL將expr轉(zhuǎn)換成FLOAT(浮點(diǎn)數(shù))格式
BINARY將expr轉(zhuǎn)換成二進(jìn)制格式

結(jié)果都為:

MySQL按字符串?dāng)?shù)字排序處理

公司不知是誰設(shè)計(jì)的表菜單排序字段竟然設(shè)置成了字符串。

CREATE TABLE `s_menu` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `PARENT_ID` int(11) DEFAULT NULL,
  `ORDER` varchar(5) DEFAULT NULL,
  `MENU_NAME` varchar(255) DEFAULT NULL,
  `MENU_URL` varchar(255) DEFAULT NULL,
  `MENU_ICON` varchar(100) DEFAULT NULL,
  `SORT_NUM` int(2) DEFAULT NULL,
  `IS_SHOW` int(2) DEFAULT NULL,
  `PERMISSION` varchar(100) DEFAULT NULL,
  `LOGIN_TYPE` int(11) DEFAULT NULL COMMENT '0:WEB,1:PC,2:APP',
  `CREATE_BY` int(11) DEFAULT NULL,
  `CREATE_DATE` date DEFAULT NULL,
  `MEMO` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=254 DEFAULT CHARSET=utf8 COMMENT='菜單';

為了減少代碼的改動量 

SELECT
  `ID`,
  `PARENT_ID` ,
  `ORDER` ,
  `MENU_NAME`,
  `MENU_URL` ,
  `MENU_ICON` ,
  `SORT_NUM` ,
  `IS_SHOW` ,
  `PERMISSION` ,
  `LOGIN_TYPE` ,
  `CREATE_BY` ,
  `CREATE_DATE`,
  `MEMO` 
FROM
    s_menu
ORDER BY
      (s_menu.ORDER+0) ASC

將字符的數(shù)字轉(zhuǎn)成數(shù)字,比如"123"轉(zhuǎn)成123可以直接用字符數(shù)字+0來實(shí)現(xiàn)

也可以使用 cast(str as SIGNED)

SELECT
  `ID`,
  `PARENT_ID` ,
  `ORDER` ,
  `MENU_NAME`,
  `MENU_URL` ,
  `MENU_ICON` ,
  `SORT_NUM` ,
  `IS_SHOW` ,
  `PERMISSION` ,
  `LOGIN_TYPE` ,
  `CREATE_BY` ,
  `CREATE_DATE`,
  `MEMO` 
FROM
    s_menu
ORDER BY
      cast (s_menu.ORDER as SIGNED) ASC

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ubuntu下取消MySQL數(shù)據(jù)庫本機(jī)綁定限制方法

    Ubuntu下取消MySQL數(shù)據(jù)庫本機(jī)綁定限制方法

    在Ubuntu系統(tǒng)中,添加了MySQL賬戶,賦予了數(shù)據(jù)庫完全操作權(quán)限,并且允許數(shù)據(jù)庫從外部鏈接 但是,還是無法遠(yuǎn)程訪問MySQL數(shù)據(jù)庫
    2013-06-06
  • MySQL數(shù)據(jù)庫備份問題及處理

    MySQL數(shù)據(jù)庫備份問題及處理

    本文主要介紹了MySQL的日志分類、備份重要性、備份類型、備份方法及備份命令等內(nèi)容,日志包括錯誤日志、二進(jìn)制日志、中繼日志、慢查詢?nèi)罩镜?備份方法包括冷備份、二進(jìn)制日志增量備份、第三方工具備份等,備份類型有完全備份、差異備份、增量備份等
    2026-05-05
  • mysql?8.0.27?解壓版安裝配置方法圖文教程

    mysql?8.0.27?解壓版安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql?8.0.27?解壓版安裝配置方法圖文教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • mysql實(shí)現(xiàn)自增序列的示例代碼

    mysql實(shí)現(xiàn)自增序列的示例代碼

    這篇文章主要介紹了mysql實(shí)現(xiàn)自增序列的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系

    Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系

    這篇文章主要介紹了Mapper sql語句字段和實(shí)體類屬性名字有什么關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • mysql數(shù)據(jù)庫遷移至Oracle數(shù)據(jù)庫

    mysql數(shù)據(jù)庫遷移至Oracle數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了mysql數(shù)據(jù)庫遷移至Oracle數(shù)據(jù)庫的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • MySQL對JSON類型字段數(shù)據(jù)進(jìn)行提取和查詢的實(shí)現(xiàn)

    MySQL對JSON類型字段數(shù)據(jù)進(jìn)行提取和查詢的實(shí)現(xiàn)

    本文主要介紹了MySQL對JSON類型字段數(shù)據(jù)進(jìn)行提取和查詢的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • MySQL分區(qū)字段列有必要再單獨(dú)建索引嗎?

    MySQL分區(qū)字段列有必要再單獨(dú)建索引嗎?

    這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)字段列是否有必要再單獨(dú)建索引的相關(guān)資料,文中通過示例進(jìn)行了驗(yàn)證,對大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • MYSQL 高級文本查詢之regexp_like和REGEXP詳解

    MYSQL 高級文本查詢之regexp_like和REGEXP詳解

    在MySQL中,regexp_like和REGEXP都是用于執(zhí)行正則表達(dá)式搜索的函數(shù),這篇文章主要介紹了MYSQL 高級文本查詢之regexp_like和REGEXP,需要的朋友可以參考下
    2023-05-05
  • 如何使用mysql查詢24小時數(shù)據(jù)

    如何使用mysql查詢24小時數(shù)據(jù)

    在進(jìn)行實(shí)時數(shù)據(jù)處理時,我們常常需要查詢最近24小時的數(shù)據(jù)來進(jìn)行分析和處理,下面我們將介紹如何使用MySQL查詢最近24小時的數(shù)據(jù),需要的朋友可以參考下
    2023-07-07

最新評論

三门县| 台山市| 钟祥市| 四子王旗| 革吉县| 武清区| 崇义县| 鲜城| 岳西县| 双鸭山市| 通城县| 青铜峡市| 孟连| 伊金霍洛旗| 镇坪县| 西盟| 平定县| 开原市| 枞阳县| 镇江市| 夏河县| 永济市| 红桥区| 那坡县| 兖州市| 西丰县| 乐亭县| 会泽县| 顺义区| 汾阳市| 金昌市| 庆城县| 杂多县| 文安县| 雷波县| 新野县| 玛纳斯县| 清远市| 望奎县| 麦盖提县| 凤冈县|