在 mysql 中使用 WHERE 和 IN 时数组的排序问题


Ordering Issue with Array When Using WHERE and IN in mysql

我有一个简单的mysql查询。从cat_id(67,65,66)中的表中选择名称,cat_id;

但是我在以正确的顺序返回结果时遇到了问题。

    [0] => Array
        (
            [cat_name] => name 1
            [cat_id] => 65
        )
    [1] => Array
        (
            [cat_name] => name 2
            [cat_id] => 66
        )
    [2] => Array
        (
            [cat_name] => name 3
            [cat_id] => 67
        )

我需要按放入 sql 语句的cat_id对它们进行排序。

67,然后是

65,然后是66。

但它总是希望按顺序 65、66、67 返回结果。

有人可以帮我解决这个问题吗? 我宁愿以正确的顺序获取结果,而不是使用 php 来操作数组。

SELECT 
    name,
    cat_id 
    FROM table 
    WHERE cat_id IN (67)
    order by cat_id asc;
UNION
SELECT 
    name,
    cat_id 
    FROM table 
    WHERE cat_id IN (65,66)
    order by cat_id asc;