我目前使用的数据库包含不同的条目,例如日期、名称,还有一个包含时间“范围”的列。这基本上意味着此单元格中可以有一个确定的数字,如“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/