where time<>0 AND img != ""   and id in(564,2540,2541,810,2539,2521,2538,1543,1690,1437,813,689)
怎么按照564 ,250 , 2541.....这个顺序进行排序?

解决方案 »

  1.   

    默认排序和引擎有关这样....你不嫌麻烦的话....
    where time<>0 AND img != "" and id  in(564,2540,2541,810,2539,2521,2538,1543,1690,1437,813,689)
    order by 
    order by id!=564,id!=2540,id!=2541,id!=810,id!=2539,id!=2521,id!=2538,id!=1543,id!=1690,id!=1437,id!=813,id!=689
      

  2.   

    咳咳,上面多个order by, 
    再给个选择:
    order by find_in_set(id,'564,2540,2541,810,2539,2521,2538,1543,1690,1437,813,689')
      

  3.   

    id!=564,id!=2540,id!=2541,
    不等于??
      

  4.   

    find_in_set 就是最好选择。你说id多。你可以在程序中生成。
    $id=array(564,2540,2541,810,2539,2521,2538,1543,1690,1437,813,689);
    $s=join(',',$id);
    $sql="....where time<>0 AND img != \"\" and id in(564,2540,2541,810,2539,2521,2538,1543,1690,1437,813,689) 
    order by find_in_set(id, '$s') ";
    echo $sql;