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

标签 php mysql arrays sorting

我有一个像这样的简单 mysql 查询。 SELECT name,cat_id FROM table WHERE cat_id IN (67,65,66);

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

    [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;   

关于php - 在 mysql 中使用 WHERE 和 IN 时数组的排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530280/

相关文章:

c++ - 包含由换行符分隔的单词的文件和 C++ 中这些单词的字符串 vector 是否具有相同的大小?

php - WordPress mysql 消失了

php - 内存缓存故障转移

PHP 函数比较两个表中的数据以合并到现有脚本中

javascript - 如何使用表单中的输入变量来更新另一个 php 的图表?

arrays - 如何查询 (String, Dictionary<String, String>) 到 UITableViewCell 中?

c++ - 如何在 C++ 中更改二维数组中数字的位置?

PHP 所有 GET 参数与 mod_rewrite

php - 在 mysql 列中选择包含字符串的行

mysql - 在 mac OS 中安装 mysqlclient 库