如何按低值对记录进行排序。所有记录在我的表中的同一行

时间:2015-05-25 16:13:57

标签: php mysql

如何对具有相同值的记录进行排序:

这是我目前在表格中的值的示例

record_id a_id b_id c_id a_value b_value c_value
       25 A    B    C    450     390     395

很抱歉我无法在这里创建表格。

我正在使用Php / MySQL后端。

我需要以下输出:

B 390
C 395
A 450

它应该使用较低的值和id名称进行排序。

我知道所有这些记录是否在不同的行中。很容易按小值排序。使用mysql的MIN函数购买。

我不确定如何在同一行记录中对此进行排序。

2 个答案:

答案 0 :(得分:0)

您可以使用php完成此操作,例如:

<?php
$row = ...

$myArray = array();
foreach ($row as $column => $value) {
    if (strpos($column, '_value') !== FALSE) {
        $myArray[strtoupper(substr($column, 1))] = $value;
    }
}

asort($myArray);

echo '<pre>';
print_r($myArray);
echo '</pre>';

如果你想让它变得动态,你可以这样做:

{{1}}

答案 1 :(得分:-1)

SELECT record_id, mim(
    SELECT a_value FROM table t2 WHERE t1.record_id = t1.record_id UNION ALL
    SELECT b_value FROM table t3 WHERE t3.record_id = t1.record_id UNION ALL
    SELECT c_value FROM table t4 WHERE t4.record_id = t1.record_id )
FROM table t1 

你的sql应该放弃上面的逻辑。我无法测试,因为我没有在这台电脑上使用mysql。