通过IN子句按顺序的MySql fetchin

时间:2011-11-24 06:58:55

标签: php sql select

  

可能重复:
  Ordering by the order of values in a SQL IN() clause

我知道我们可以使用数组作为

来获取php中mysql中的所有行
$ids=array(14,23,2,41,33)

select * from table_name where id IN ($ids);

现在的问题是我希望按照元素的顺序获取行。

首先应该从行获取id为14的行,然后是23,然后是2 ..当前正在获取数据的是 - >>第一行的id为2,然后是14,然后是23 ......

和我“不能”运行一个循环,导致数组大约200个元素长,无法在同一个实例查询200个服务器。任何想法..?

1 个答案:

答案 0 :(得分:0)

$ids = array( 14,23,2,41,33);
$sql = 'SELECT * 
            FROM table_name
        WHERE id IN ( ' . implode( ',', $ids) . ' )
        ORDER BY FIELD( id, ' . implode( ', ', $ids) . ')';