2014-12-19 82 views
1

表中的列中存儲的數字爲varchar。某些值具有>符號(例如,> 128)。將varchar轉換爲整數並在MySql查詢中排序

首先,我想剝離>符號。

接下來,將它們轉換爲整數並通過按升序排序來檢索該列上的數據。我正在使用IF條件去除>符號,然後使用轉換函數進行轉換。

我使用下面的行,這是扔了錯誤:

#1064 - 你有一個錯誤的SQL語法

SELECT CAST((if(col_name ='>128',128,col_name) as MIC) AS UNSIGNED) 
FROM `mytable` order by MIC ASC 
+1

和錯誤消息是什麼? – Jens 2014-12-19 07:14:56

+0

#1064 - 您的SQL語法錯誤 – sridhar 2014-12-19 07:19:58

+0

必須有更多信息。你能提供整個錯誤信息嗎? – Jens 2014-12-19 07:26:23

回答

0
SELECT CASE WHEN INSTR(col_name,'>') = 0 THEN CAST(SUBSTR(col_name,2) as UNSIGNED) 
     ELSE CAST(col_name as UNSIGNED) END as MIC 
FROM mytable 
ORDER BY MIC 
+0

謝謝。我調整了我自己的路線並取得了預期的結果。以下工作:'code'SELECT CAST((如果(col_name ='> 128',128,col_name))AS AS UNSIGNED)作爲MIC FROM my_table order by MIC ASC'code' – sridhar 2014-12-19 08:57:41