Mysql實現百分數型字符串比較的一種思路

好久沒有和大家見面了,最近換了工作,一直在熟悉新公司的業務和技術,這些天閑了一些,今天給大家分享一個在Mysql中實現百分數型字符串比較的一種思路。

舉個栗子

這幾天遇到個小需求,一個表中存儲百分數的字段是varchar類型的,存儲的數據都是像 20%這種,如圖:

像這種,百分數型的字符串

是這種百分數型的字符串,現在要實現按這個字段進行范圍查詢,就涉及到了這種百分數型的字符串之間的比較,分享一種我的實現思路,用到了兩個mysql的函數:

LEFT函數

LEFT(str,len),返回字符串str的左面len個字符,先返回百分數型字符串除了%號的數字

left('10%',length('10%')-1)

SELECT left('10%',length('10%')-1) FROM dual;

length返回字符串的長度(不關鍵,就不專門說了)


如圖,結果變成了數字型的字符串
ABS函數

ABS(X),返回X的絕對值

ABS(left('10%',length('10%')-1))
SELECT ABS(left('10%',length('10%')-1)) FROM dual;
如圖,此時,結果已經變成了double型了

通過這兩次操作,百分數型字符串已經變成了double行的數字,直接進行比較就行。


在代碼中直接使用mysql這兩個函數就可以實現了

今天就為大家說道這里,歡迎大家來交流,指出文中一些說錯的地方,讓我加深認識。
謝謝大家!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容