我怎样才能在mysql中这样订购

时间:2011-07-16 09:04:16

标签: mysql

如何在mysql中订购

1 1/2 2 3/1 3/2 3/12 5 5/1 7 13/1

当我或它在5

之前带来1 1/2 13/1

格式为x / x,其中x为数字

1 个答案:

答案 0 :(得分:2)

我认为您需要将列拆分为两个单独的列。我绝不是一个MySQL专家,你可能必须将它包装在一个子选择中或以其他方式操纵它,正如我们所讨论的,你需要将这些从字符串转换为整数(我似乎无法制作)关于我安装的MySQL安装的这项工作,但我从不使用它):

select
    SUBSTRING_INDEX(a,'/',1) as PartA,
    CASE WHEN LOCATE('/',a) > 0 THEN SUBSTRING_INDEX(a,'/',-1) ELSE '0' END as PartB
from
    <rest of query>

其中a是此列的名称。就像我说的,我似乎无法理解MySQLs语法将这些值转换为整数,而且显然,我们还需要应用ORDER BY子句。

对不起,这是一个不完整的答案,但希望它会指出你正确的方向,似乎没有其他人回答......


根据我在评论中看到的内容,我认为我们可以通过以下方式获取数字:

select
    CAST(SUBSTRING_INDEX(a,'/',1) as decimal) as PartA,
    CAST(CASE WHEN LOCATE('/',a) > 0 THEN SUBSTRING_INDEX(a,'/',-1) ELSE '0' END as decimal) as PartB
from
    <rest of query>