如何在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为数字
答案 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>