mysql - SQL 如何按 "Ranges"排序

标签 mysql sql numbers range

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

现在我通过几个条件将 $SQL_statement 放在一起,然后将所有内容放入 $resultset 中,然后与“while”一起使用。以下是一些片段:

$resultset=mysql_query($SQL_statement);
while ($currententry=mysql_fetch_array($resultset))
{
    echo $currententry['Platform'];
    echo $currententry['PlaytimeInH']."h";
}

最佳答案

你可以用 substring_index() 和算术来做到这一点:

order by (substring_index(col, '-', 1) + 0 +
          substring_index(col, '-', -1) + 0
         ) / 2

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

请注意,即使 col 中没有连字符,上面的内容仍然有效。

关于mysql - SQL 如何按 "Ranges"排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41784097/

相关文章:

javascript - 在 JavaScript 中移动整数以进行存储?

来自 mysql_next_result() 的 MySQL 5.3 未处理错误

php - 编写大型一键式切换按钮以替换单个复选框并提交按钮表单的最佳方法?

MySQL,删除和索引提示

php - 将一个表中的多行插入到另一个表中的一个唯一行中

algorithm - 计算整数中 1 的数量最有效的方法是什么?

mysql - 如果 SQL 查询没有找到结果,则返回默认值

sql - oracle中如何判断一列是否为自增字段?

java - 查找 sql 中最常见的单词

java - 以分钟为单位计算年数和天数