我可能想多了......但我无法弄清楚这一点。我有一个有五列的数据库。在这些列中是一个随机数 1-6。我正在尝试拉动这一行,然后对它们进行重新排序 asc 或 desc- 没关系。
Col1 | Col2 | Col3 | Col4 | Col5
---------------------------------
2 | 1 | 3 | 5 | 4
我想知道这些行是否显示:1,2,3,4,5 或 5,4,3,2,1。
谁能帮我?
建议
将列值存储到数组中并执行sort($column_value_array, SORT_NUMERIC)
也看看这个 http://php.net/manual/en/function.sort.php
好吧,
如果您只是尝试对数组进行排序PHP
那么已经为此完成了一个函数
sort ($array [, int $sort_flags = SORT_REGULAR ] )
该方法将返回与排序的成功状态相关的布尔值。
请注意,sort_flag
是兼性的,在您的情况下实际上不需要使用。
有关详细信息,请参阅 http://php.net/manual/en/function.sort.php。
另一种方法是在选择行时简单地向查询添加 order by
子句。
我建议
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 &&
这是一个查询。这将确保在每列(任何)中存在任何 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