还是查询一张表有n个字段   ,其中主键id
然后php代码中有一个数组$arr=array(
  array('id'=>'5','num'=>100),
  array('id'=>'11','num'=>99),
  array('id'=>'3','num'=>98),
......
)也就是说$arr  这个数组根据num由大到小排列,,此时的id顺序是这样的,然后要求是数据库查询集合要根据这个id排列的顺序,查找对应的集合,怎么做,,看上去有点无规则,但好像又有点联系

解决方案 »

  1.   

    是把id在数组里id的查出来吗??如果是:把id组成一个array,然后sql id in (implode())
      

  2.   


    这么简单我就不问了,简单来说是数据表集合  根据外部数组的id排序 来输出,输出的id顺序和数组的id 顺序相同难题
      

  3.   

    将数组导入临时表
    与源表做关联查询,联接键 id,排序键 临时表.num
      

  4.   

    这是一种思路:
    先取出来。再用php排序。array_multisort()这个函数就可实现。至于mysql有不有这种功能就不知道了。
      

  5.   

    如果有数组 $arr=(3,2,1);  和 表 table,如下sql可以实现表table 按 $arr排序
    SELECT t.* FROM `table` t,(SELECT 3 AS id UNION SELECT 2 UNION SELECT 1) AS arr WHERE t.id=arr.id
    关键是组织好临时表 arr
      

  6.   

    order by 可以实现根据你提供的数值来排序的,不过豸像效率不乍样
      

  7.   

    不考虑效率可以用order by find_in_set(id,'5,11,3')
      

  8.   

    php按照id拍个序吧。程序员多累啊
      

  9.   

    想法跟版主的不谋而合。
    如果php的数组是固定的,可以建立另外一张表,与原表做关联查询。
    之前做过的一个学生信息录出就是这么做的。如果数组不固定的,我倒是觉得没有必要让mysql来做,交给php做未尝不是好选择。