2012-12-18 32 views
0

请让我有一个字段(键入文本),其中包含一些值(文本和一些int或浮点值)。Mysql/PHP如何选择和以浮点格式排序结果?

所以我想只选择浮点数和整数值,并按的值排序主题。

目前我可以单独获取花车,但问题是,结果我得到的文本格式,而不是浮动或整数格式(这是正常的我猜)主题排序。例如:

33 
33358 
80 
88000 
90 
99 

请高手,我怎么会告诉我的查询要考虑的结果花车,而不是文字,并得到,而不是这样的结果:

33 
80 
90 
99 
33358 
88000 

在此先感谢

回答

3

使用类似的代码下面

ORDER BY ABS(columnname) 
+0

如果选择ABS(-32);'会发生什么? – GBD

+0

它也适用于我的情况。谢谢你,先生 ! –

9
ORDER BY field * 1 

ORDER BY CAST(field as DECIMAL(10,5)) 

两者都应该做同样的事情,但第一个更容易/写得更快。

0

当您在查询中选择该变量时,将VALUE转换为float/int格式,然后按该列对结果集进行排序。

eg./ SELECT CAST(价值为十进制(10,5))AS customname FROM表名ORDER BY customname

记住,你可以同时投射到任何你想要的。

0

将混合值存储在字段中的文本类型不是一个好主意。如果你想对字段进行排序和过滤,我建议将它们作为分隔的字段使用 - text,int,float等。
如果你深入数据库管理员,它会有负面的表现。