使用FORMAT()
從我的結果中去除一些不必要的小數位後,我無法正確排序該字段,因爲該字段現在是一個字符串而不是數字。如何在MySQL中的FORMAT()之後按數字順序排序字段?
什麼是排序結果然後刪除小數位(或相反)的好實踐,以便它們按正確的數字順序排序?格式之前
結果
ORDER BY `Field` ASC
*---------*
| 1000.06 |
| 2000.17 |
| 3000.12 |
| 10000.4 |
| 20000.1 |
| 30000.2 |
*---------*
結果數字順序排序,但也有需要被刪除不需要的小數位。格式化後
結果()
ORDER BY `Field` ASC
*---------*
| 1,000 |
| 10,000 |
| 2,000 |
| 20,000 |
| 3,000 |
| 30,000 |
*---------*
結果不得不去掉小數,但作爲FORMAT()
取得了該領域的字符串,則它不排序數字,因爲我們需要的,但按字母順序。
需要的結果
*---------*
| 1,000 |
| 2,000 |
| 3,000 |
| 10,000 |
| 20,000 |
| 30,000 |
*---------*
所需的結果是對結果進行數字順序排序,並有小數位中移除。
我應該說,我試圖在它周圍拍一個'CAST()',但它引起了錯誤。 (前一行是'FORMAT(...,0)AS Field'成爲CAST(FORMAT(...,0)as INTEGER)AS Field',但是這導致了錯誤。)因爲我不確定這是否是這樣做的理想順序(即良好的做法),我想我會問。 – Eilidh
我是否理解正確,如果我說:你有一個號碼。您將其轉換爲字符串。你想將它轉換回數字並排序? – zerkms
我有一些數字帶有凌亂的小數位,我不需要(例如'1,000.00067')。我需要*刪除小數位*並按數字順序正確排序。我被建議使用'FORMAT()'去除小數位,但我不確定這是否與數字順序排序兼容,如果是的話,最好的做法是什麼。 – Eilidh