欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL之解決字符串?dāng)?shù)字的排序失效問題

 更新時間:2023年08月26日 10:51:00   作者:一碗謙謙粉  
這篇文章主要介紹了MySQL之解決字符串?dāng)?shù)字的排序失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL字符串?dāng)?shù)字的排序失效問題

問題描述

最近在做老項目維護(hù)時,有客戶反映說,視圖的序號排序有問題。

這里的序號,相當(dāng)于是排序號,由用戶自定義輸入排序號,來自定義某些數(shù)據(jù)的前后位置。

但是檢查了一下SQL,又是沒有問題的。

"select * from contractFil where istmp=0 order by sort desc";

后來,查看表設(shè)計,發(fā)現(xiàn)列sort是varchar類型的。

所以不能直接排序。

解決

在不修改原有設(shè)計的情況下,只能改SQL了,我們需要先把字符串轉(zhuǎn)數(shù)字。

字符串轉(zhuǎn)數(shù)字的三種方式:

(1)+0

order by (sort+0) desc

(2)用函數(shù)CAST(value as type)或CONVERT(value, type)

type可為DECIMAL (浮點(diǎn)數(shù) )、SIGNED(整數(shù))、UNSIGNED (無符號整數(shù) )

order by CAST(sort as SIGNED) desc
order by CONVERT(sort ,SIGNED)desc

MySQL中ORDER BY排序錯誤

記錄一個錯誤

這是使用format函數(shù)來進(jìn)行小數(shù)點(diǎn)后兩位保留,使用這個會導(dǎo)致排序錯誤。

SELECT
	enterprise_key_id,
	enterprise_name_cn,
	occupied_area,
	registered_place_key_id,
	registered_place_name,
	registered_capital,
	registered_capital_type_key_id,
	registered_capital_type_name,
	-- ROUND(sum( IFNULL( tax_aa, 0 ) ) / 10000,2) AS last_year_taxtotal 
	FORMAT( IFNULL( sum( IFNULL( tax_aa, 0 ) ) / 10000, 0 ), 2 ) AS last_year_taxtotal 
FROM
	etl_enterprise_base_info 
WHERE
	archived_year_month LIKE CONCAT( '%', YEAR ( DATE_SUB( NOW( ), INTERVAL 1 YEAR ) ), '%' ) AND registered_place_key_id = 8
GROUP BY
	enterprise_key_id 
ORDER BY last_year_taxtotal DESC

使用ROUND函數(shù)來進(jìn)行排序就沒有出錯。

總結(jié)

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

相關(guān)文章

  • mysql的聯(lián)合索引(復(fù)合索引)的實(shí)現(xiàn)

    mysql的聯(lián)合索引(復(fù)合索引)的實(shí)現(xiàn)

    這篇文章主要介紹了mysql的聯(lián)合索引(復(fù)合索引)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Mysql 本地計算機(jī)無法啟動 mysql 服務(wù) 錯誤 1067:進(jìn)程意外終止。

    Mysql 本地計算機(jī)無法啟動 mysql 服務(wù) 錯誤 1067:進(jìn)程意外終止。

    初學(xué)php接觸mysql,遇到一些問題,卸載重裝后,無法啟動mysql服務(wù),網(wǎng)絡(luò)上有很多種說法,我這里將我解決這個問題的辦法提出
    2009-12-12
  • mysql 截取指定的兩個字符串之間的內(nèi)容

    mysql 截取指定的兩個字符串之間的內(nèi)容

    今天我同事在用mysql的時候,需要對一個字符串中的指定內(nèi)容進(jìn)行截取
    2009-07-07
  • MySQL transaction事務(wù)安全示例講解

    MySQL transaction事務(wù)安全示例講解

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫事務(wù)安全transaction的示例講解教程,事務(wù)就是將一組操作封裝成一個執(zhí)行單元,要么一塊執(zhí)行成功,要么一塊失敗,不存在部分執(zhí)行成功的情況。事務(wù)保證了執(zhí)行的穩(wěn)定性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-06-06
  • mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)

    mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)

    MySQL 中的 FIND_IN_SET 函數(shù)用于在逗號分隔的字符串列表中查找指定字符串的位置,本文就來介紹一下mysql中find_in_set()函數(shù)用法及自定義增強(qiáng)函數(shù)
    2024-08-08
  • mysql視圖原理與用法實(shí)例詳解

    mysql視圖原理與用法實(shí)例詳解

    這篇文章主要介紹了mysql視圖原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql視圖的概念、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • MySQL8.0.21安裝步驟及出現(xiàn)問題解決方案

    MySQL8.0.21安裝步驟及出現(xiàn)問題解決方案

    這篇文章主要介紹了MySQL8.0.21安裝步驟及出現(xiàn)問題解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • MySQL中列如何以逗號分隔轉(zhuǎn)成多行

    MySQL中列如何以逗號分隔轉(zhuǎn)成多行

    這篇文章主要介紹了MySQL中列如何以逗號分隔轉(zhuǎn)成多行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論

    MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論

    這篇文章主要介紹了MySQL中distinct語句去查詢重復(fù)記錄及相關(guān)的性能討論,文中的觀點(diǎn)是在一定情況下避免在最高層查詢中使用distinct,需要的朋友可以參考下
    2016-01-01
  • 詳解MySQL中的事務(wù)與ACID特性

    詳解MySQL中的事務(wù)與ACID特性

    這篇文章主要為大家介紹了Mysql?中的事務(wù),包括事務(wù)的基本概念和?ACID?特性、事務(wù)的隔離級別和具體實(shí)現(xiàn)方法等,并提供相應(yīng)的代碼示例,希望對大家有所幫助
    2023-05-05

最新評論