表中的列的数字存储为varchar。一些值具有>符号(例如,> 128)。
首先,我想剥离>标志。
接下来,将它们转换为整数并通过按升序排序来检索该列上的数据。我正在使用IF条件剥离>签名,然后使用强制转换功能。
我正在使用以下行,这就是抛出错误:
#1064 - 您的SQL语法错误
SELECT CAST((if(col_name ='>128',128,col_name) as MIC) AS UNSIGNED)
FROM `mytable` order by MIC ASC
答案 0 :(得分: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