在Order By子句中使用IN表达式

时间:2015-10-28 03:51:47

标签: mysql sql

如何在Order By子句中正确使用IN表达式?我有几个这样的问题,我找不到解决方案。

我想从客户列表中选择ID,姓氏,国家并先由北美国家(加拿大和美国,相应的ID)订购,然后一旦填充,我想根据ID订购剩余数据单独

Select customerid, lastname, country
From customer
Where country IN ('Canada', 'USA')
Order By CustomerID

Here正是他们所寻找的。

我已经尝试过Where子句并嵌套查询,但我是新手。

欢迎任何建议。

2 个答案:

答案 0 :(得分:2)

您不想使用where条件,而是使用条件排序:

Select customerid, lastname, country
From customer
Order By country IN ('Canada', 'USA') desc, CustomerID

答案 1 :(得分:0)

您还可以在$active_ids = '1, 3, 4'; $query = "SELECT * FROM users WHERE id IN ({$active_ids})"; $result = $mysqli->query($query); $query = "SELECT dj, count(*) AS n FROM timetable WHERE dj IN ({$active_ids}) GROUP BY dj"; $result = $mysqli->query($query); while($row = $result->fetch_assoc()){ echo $row['username'], "<br/>"; echo $row['n'], "<br/>"; } 中写一个case以获得更多选项。

<强> sqlFiddleDemo

order by