我們在工作中設計表的時間經常會遇到排序字段的類型選擇,是選擇字符串類型,還是選擇類型呢?還是有更好的選擇呢?
下面我們要選擇用字符串做為排序字段類型
創建表跟插入數據
創建表
插入數據
查詢所以記錄並排序
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字段設計為數值類型。一步到位,節省一些執行的時間。
修改表字段類型
修改表字段類型
執行查詢並排序
執行查詢語句
如果你還有什么好的方法可以在評論中留言交流謝謝大家。
