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

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

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

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

問(wèn)題描述

最近在做老項(xiàng)目維護(hù)時(shí),有客戶反映說(shuō),視圖的序號(hào)排序有問(wèn)題。

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

但是檢查了一下SQL,又是沒(méi)有問(wèn)題的。

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

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

所以不能直接排序。

解決

在不修改原有設(shè)計(jì)的情況下,只能改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 (無(wú)符號(hào)整數(shù) )

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

MySQL中ORDER BY排序錯(cuò)誤

記錄一個(gè)錯(cuò)誤

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

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ù)來(lái)進(jìn)行排序就沒(méi)有出錯(cuò)。

總結(jié)

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

相關(guān)文章

最新評(píng)論

临夏市| 莒南县| 丹阳市| 萨迦县| 江都市| 四子王旗| 马鞍山市| 全椒县| 阿尔山市| 内丘县| 安平县| 三河市| 日土县| 通海县| 靖西县| 安义县| 南昌县| 克拉玛依市| 博兴县| 乌拉特中旗| 台北县| 汤阴县| 南木林县| 延川县| 韶关市| 敦煌市| 南岸区| 桦甸市| 鄄城县| 崇左市| 尉犁县| 芮城县| 嫩江县| 定陶县| 利川市| 开江县| 彭阳县| 宿州市| 长泰县| 余江县| 伊川县|