mysql如何對String類型的數字值排序
mysql對String類型的數字值排序
正常
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY total_box_num asc
查詢結果

但如果total_box_num字段類型是String的話排序就會有問題, 需要在字段前加 --
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY --total_box_num asc
查詢結果

或者
SELECT current_box_num, total_box_num FROM jis_order WHERE delete_flag = 0 AND id IN ( 41362, 41361, 41360, 41359, 41358, 41357, 41356 ) ORDER BY total_box_num+0 asc
mysql字符串數字排序
如果您的 MySQL 數據庫中的字符串只包含數字并且您想按數字順序對它們進行排序,可以使用 MySQL 內置的 CAST() 函數將字符串轉換為數字,然后對數字進行排序。
例如:
假設您有一個名為 mytable 的表,其中包含一個名為 mycolumn 的列,該列包含字符串數字,您可以使用以下查詢對它們進行排序:
SELECT mycolumn FROM mytable ORDER BY CAST(mycolumn AS UNSIGNED) ASC;
這將按升序順序返回 mytable 中的所有行,并將 mycolumn 中的字符串數字轉換為無符號整數進行排序。
如果您想按降序順序對它們進行排序,可以將 ASC 替換為 DESC。
請注意,如果 mycolumn 中包含非數字字符,則 CAST() 函數將返回 0。
因此,如果您的列中包含其他字符,則可能需要使用其他方法來排序。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql出現“Incorrect key file for table”處理方法
今天在恢復一個客戶數據的時候。發(fā)現了一貫問題。有多個表損壞了。因為都是直接把表復制進去的。然后就出現了這個問題問題2013-07-07
MySQL 中 datetime 和 timestamp 的區(qū)別與選擇
MySQL 中常用的兩種時間儲存類型分別是datetime和 timestamp。如何在它們之間選擇是建表時必要的考慮。下面就談談他們的區(qū)別和怎么選擇,需要的朋友可以參考一下2021-09-09
mysql 啟動1067錯誤及修改字符集重啟之后復原無效問題
這篇文章主要介紹了mysql 啟動1067錯誤及修改字符集重啟之后復原無效問題,需要的朋友可以參考下2017-10-10
Navicat Premiun遠程連接MySQL報錯10038解決方案
這篇文章主要介紹了Navicat Premiun遠程連接MySQL報錯10038解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11

