使用SELECT ... WHERE id IN(...),按IN()排序结果?

Jef*_*eff 18 mysql sql sql-order-by

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

使用如下查询:

SELECT * FROM images WHERE id IN (12,9,15,3,1)
Run Code Online (Sandbox Code Playgroud)

是否可以通过IN子句的内容对结果进行排序?

我正在寻找的结果将是这样的:

[0] => Array
    (
        [id] => 12
        [file_name] => foo
    )   
[1] => Array
    (
        [id] => 9
        [file_name] => bar
    )   
[2] => Array
    (
        [id] => 15
        [file_name] => baz
    )
...
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 7

IN子句定义了一个集合,而数学集合没有顺序.

但是,使用FIELD()函数似乎有一种解决方法:

  • 是的,可以通过调整SQL查询来实现.请参见此处:http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause (2认同)