MySql通过in子句按顺序获取


MySql fetchin in order by IN clause

可能重复:
按SQL in((子句中值的顺序排序

我知道我们可以通过使用数组作为在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个的服务器。有什么想法吗。。?

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