Mysql—字符串轉其他類型(CAST和CONVERT函數)

1、在mysql中,根據數字字符串排序,會按照和java字符串比較的模式進行(即第一位先比較,相等在比較下一位,以此類推),這樣就會在有些比較的情況下,獲取到不正確的結果,如:2和19,用數字的類型比較應該是19更大,但是兩者類型都是字符串的話,就是2比19更大,所以此時我們想要得到我們需要的結果,就需要轉換類型。

2、常用的轉換類型

  • 二進制,同帶binary前綴的效果 : BINARY    
  • 字符型,可帶參數 : CHAR()     
  • 日期 : DATE     
  • 時間: TIME     
  • 日期時間型 : DATETIME     
  • 浮點數 : DECIMAL      
  • 整數 : SIGNED     
  • 無符號整數 : UNSIGNED 

3、CAST方法用法(CAST(value as type)

用法如下:

select t.CLASS_NO,t.name,t.grade from edu_class t ORDER BY t.GRADE asc,CAST(t.CLASS_NO AS signed) asc;

4、CONVERT方法(CONVERT(value, type)

用法如下:

select t.CLASS_NO,t.name,t.grade from edu_class t ORDER BY t.GRADE asc,CONVERT(t.CLASS_NO,SIGNED) asc;

兩者效果都如下,可以看到轉換類型後的排序就是我們想要的效果:

5、學海無涯苦作舟,不要急於求成,慢慢沉澱纔是真理!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章