Dec*_*ler 4 mysql sql database sql-order-by
考虑这个MySQL查询:
SELECT
someColumns
FROM
someTable
WHERE
someColumn IN ( value1, value2, value3 )
Run Code Online (Sandbox Code Playgroud)
...我怎样才能保证行集按照赋予该IN ()子句的值的确切顺序排序?我认为如果不给它一个ORDER BY条款就不能保证,是吗?
PS.:子句
的值IN ()将是一个由PHP传递给查询的任意数据数组(利用Zend Framework的select语句),方式如下:
->where( 'someColumn in (?)', $theArrayWithValues );
Run Code Online (Sandbox Code Playgroud)
在ORDER BY中使用CASE语句:
ORDER BY CASE someColumn
WHEN value1 THEN 1
WHEN value2 THEN 2
WHEN value3 THEN 3
END ASC
Run Code Online (Sandbox Code Playgroud)
根据需要分配任意值.我通常不包含ASCin,ORDER BY因为如果没有定义它是隐含的,但我希望在你需要的时候是明确的DESC.