【问题标题】:Complex data ordering复杂数据排序
【发布时间】:2011-02-20 01:59:46
【问题描述】:
我在一个数组中有一个表 id,它们按照我想要的方式排序,我必须使用这些 id 从另一个表中选择数据,并按照它们在数组中监听的顺序。
非常令人困惑,但我正在考虑两种解决方案,为数组提供 ORDER BY 参数,但我不知道这是否可能,另一个是获取所有必要的数据,然后将其转换为数组(mysql_fetch_assoc),然后比较这两个并以某种方式订购新的使用 ids 数组的数组。但我也不知道该怎么做......
有什么想法吗?
【问题讨论】:
标签:
arrays
select
mysql
sql-order-by
【解决方案1】:
我不确定我是否得到了您的要求...可能您想使用 ORDER BY FIELD 子句。
例如:
SELECT something FROM tablename ORDER BY FIELD(id,5,6,3,2,4,1)
【解决方案2】:
如果“顺序数组”在内存中,最好将目标表查询到另一个数组中,然后使用“顺序数组”遍历该数组。
也就是说,在内存中保留一个已排序的 ID 数组是有问题的……你怎么知道排序顺序仍然有效?就此而言,您如何知道该 ID 仍然有效。这种事情一般直接在SQL里面做比较好,让数据库处理细节。