如何对具有相同值的记录进行排序:
这是我目前在表格中的值的示例
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函数购买。
我不确定如何在同一行记录中对此进行排序。
答案 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。