按编号从单行对列进行排序

时间:2015-02-04 04:05:30

标签: php sorting

我可能过度思考了这一点......但我无法弄清楚这一点。我有一个有五列的数据库。在这些列中是随机数1-6。我试图拉出这一行然后重新排序它们asc或desc-无关紧要。

Col1 | Col2 | Col3 | Col4 | Col5
---------------------------------
  2  |   1  |   3  |   5  |   4

我想对这些进行排序以了解行是否显示: 1,2,3,4,5或5,4,3,2,1。

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:0)

建议将列值存储到数组中并执行sort($column_value_array, SORT_NUMERIC)

也对此http://php.net/manual/en/function.sort.php

有所了解

答案 1 :(得分:0)

如果您只是尝试在PHP中对数组进行排序,那么已经为此完成了一项功能

sort ($array [, int $sort_flags = SORT_REGULAR ] )

该方法将返回与排序成功状态相关的布尔值。

请注意,sort_flag是兼容性的,在您的情况下确实不需要使用。

有关详细信息,请参阅http://php.net/manual/en/function.sort.php

另一种方法是在选择行时简单地为查询添加order by子句。

答案 2 :(得分:0)

这是一个查询。这将确保在每列(任何)中存在任何1,2,3,4,5号码,即5列中的号码不同

select *,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '1', ''))) as one,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '2', ''))) as two,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '3', ''))) as three,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '4', ''))) as four,
((LENGTH(concat(cola,colb,colc,cold,cole))) - LENGTH(REPLACE(concat(cola,colb,colc,cold,cole), '5', ''))) as five
from tests
having one = 1 AND two = 1 AND three = 1 AND four = 1 AND five = 1

答案 3 :(得分:0)

我建议

SELECT * from table WHERE

Col1 in (1,2,3,4,5) && 
Col2 in (1,2,3,4,5) &&
Col3 in (1,2,3,4,5) &&
Col4 in (1,2,3,4,5) &&
Col5 in (1,2,3,4,5) &&
Col1 != Col2 &&
Col1 != Col3 &&
Col1 != Col4 &&
Col1 != Col5 &&
Col2 != Col3 &&
Col2 != Col4 &&
Col2 != Col5 &&
Col3 != Col4 &&
Col3 != Col5 &&
Col4 != Col5 &&