我有一个像这样的简单 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/