Mysql 數據庫中表的排序字段類型要怎么選擇?


我們在工作中設計表的時間經常會遇到排序字段的類型選擇,是選擇字符串類型,還是選擇類型呢?還是有更好的選擇呢?

 

下面我們要選擇用字符串做為排序字段類型

創建表跟插入數據

 

創建表

 

插入數據

查詢所以記錄並排序

SELECT * from test_server ORDER BY sort ASC

 

執行查詢並排序

從上圖我們可以看出上面的排序是有問題,正確的排序應該是 1,2,4,12 而現在是1,12,2,4被當成字符串來比較了。

要怎么解決上面的問題呢?就是要把字符串轉換為數值類型

1,sort+0后再排序

 

執行查詢並排序

2,使用MySQL函數CAST/CONVERT

CAST() 和CONVERT() 函數可用來獲取一個類型的值,並產生另一個類型的值。

這個類型 可以是以下值其中的 一個:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

 

執行查詢並排序

 

執行查詢並排序

以方法雖然都可以解決這個問題,但是還我喜歡直接把sort字段設計為數值類型。一步到位,節省一些執行的時間。

修改表字段類型

 

修改表字段類型

執行查詢並排序

 

執行查詢語句

如果你還有什么好的方法可以在評論中留言交流謝謝大家。


免責聲明!

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



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