首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL如何按"Ranges“排序

SQL如何按"Ranges“排序
EN

Stack Overflow用户
提问于 2017-01-22 04:27:10
回答 2查看 1.9K关注 0票数 1

我目前使用的数据库有不同的条目,如日期、姓名,但也有一个列的时间“范围”。这基本上意味着在这个单元格中可以有一个像"10“这样的确定数字,也可以有一个像"10-15”或"5-10“这样的值。因此,我想在这里做的是按“平均值”((Lowest+Highest)/2)对它们进行排序。因此,在提到的3个值应该是5-10 10 10-15的情况下,我想知道是否可以以某种方式将其嵌入到SQL语句中。如果不可能,我想知道实现它的最简单的方法。

现在我正在通过几个条件把$SQL_statement放在一起,然后把所有东西放到$resultset中,然后和"while“一起使用。以下是一些代码片段:

代码语言:javascript
复制
$resultset=mysql_query($SQL_statement);
while ($currententry=mysql_fetch_array($resultset))
{
    echo $currententry['Platform'];
    echo $currententry['PlaytimeInH']."h";
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-22 06:17:43

您可以使用substring_index()和算术来完成此操作:

代码语言:javascript
复制
order by (substring_index(col, '-', 1) + 0 +
          substring_index(col, '-', -1) + 0
         ) / 2

除以2是不必要的,但您需要在问题中指定平均值。

请注意,即使col中没有连字符,上面的代码也会起作用。

票数 0
EN

Stack Overflow用户

发布于 2017-01-22 04:43:30

您可以将select与order by中的case when子句一起使用

代码语言:javascript
复制
select col1, col2, cole 
from  your_table 
order by case 
         when your_column  = '5-10'  then 1 
         when your_column  = '10-15'  then 2
         when your_column  = '15-20'  then 3 
         else 4
         end  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41784097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档