对数据库中的双精度值进行排序

时间:2019-04-09 08:23:43

标签: php mysql database sorting

在数据库中,我保留分配代码的记录(双格式)。 从数据库调用记录时,我希望它们从最小到最大排序。

当1.2> 1.10可以理解时,就会出现问题。 我希望将其解释如下:1.10> 1.2

我试图通过将类型更改为TEXT来做到这一点。 在“代码”的末尾添加空格。

我有一个将数字划分为段的想法,如果第一个段相等,则按第二个段排序。 看来合乎逻辑,但我不知道如何将其转换为代码。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果您的代码包含有效的十进制值,则可以尝试按整数对顺序转换代码

select codes 
from my_table
order by  ( CAST(left(codes, locate('.', codes)-1 ) AS UNSIGNED), 
    CAST(right(codes, length(codes -locate('.', codes)) AS UNSIGNED))