Mysql中對字符串類型的字段進行數字值排序


排序字段+0或者*1,類似  Java 把 其他類型轉換成字符串 比如 +“”;

 一、對普通數字字符串字段排序

-- 方式一
SELECT
    * 
FROM
    xxxxxx 
WHERE
    STATUS = '1' 
ORDER BY
    ORDER_NUMBER + 0 DESC
        
        
-- 方式二        
SELECT
    * 
FROM
    xxxxx 
WHERE
    STATUS = '1' 
ORDER BY
    ORDER_NUMBER * 1 DESC
        

 二、對double字段或其他帶小數的金額字段排序

1.利用sql語句中關鍵字的執行順序先在select后將字符串轉為DECIMAL類型在排序

SELECT
    SUM( cast( MONEY AS DECIMAL ( 18, 2 ) ) ) MONEYS,
    USER_ID 
FROM
    PRODUCT
WHERE
    TYPE = '1004' 
GROUP BY
    USER_ID 
ORDER BY
    MONEYS DESC //MONEYS為select轉換后的字段值
    LIMIT 10

2.sql函數說明

cast():

一、在mysql操作中我們經常需要對數據進行類型轉換。此時我們應該使用的是cast()或convert()。

二、兩者的對比

相同點:都是進行數據類型轉換,實現的功能基本等同

不同點:兩者的語法不同,cast(value as type) 、 convert(value,type)

三、所支持的類型如下:

二進制,同帶binary前綴的效果 : BINARY

字符型,可帶參數 : CHAR()

日期 : DATE

時間: TIME

日期時間型 : DATETIME

浮點數 : DECIMAL

整數 : SIGNED

無符號整數 : UNSIGNED

 

DECIMAL(xx,x):

MySQL DECIMAL數據類型用於在數據庫中存儲精確的數值。我們經常將DECIMAL數據類型用於保留准確精確度的列

舉例說明:DECIMAL(19,9)對於小數部分具有9位數字,對於整數部分具有19


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM