在 SQL 中排序

Pau*_*gor 3 php mysql sql propel symfony1

可能的重复:
mysql自定义排序

我有一个 ID 数组:

$ids = array(5, 1, 4, 2, 3);
Run Code Online (Sandbox Code Playgroud)

我提出一个查询:

SELECT * FROM Persons
WHERE id IN $ids
Run Code Online (Sandbox Code Playgroud)

我收到这个对象:

1, 2, 3, 4, 5

是否可以像数组一样对它进行排序?我想收到

5、1、4、2、3。

我也用PROPEL。也许使用 Symfony 中的 Propel ORM,这可能吗?

Jon*_*uhn 5

在mysql中,您可以使用字段函数来自定义排序顺序。例如:

$ids = array(5, 1, 4, 2, 3);
$ids = implode(',', $ids);
$sql = "SELECT * FROM Persons
        WHERE id IN ($ids)
        ORDER BY FIELD(id, $ids)";
Run Code Online (Sandbox Code Playgroud)