Mysql 订单上的SQL问题

Mysql 订单上的SQL问题,mysql,sql,Mysql,Sql,如何先列出id为x的数据,然后再列出数字顺序? 例如,我有如下数据: 0, 1, 1, 0, 1, 2, 56, 4 我希望得到以下结果: 1, 1, 1, 0, 0, 2, 4, 56 此外,我希望id为1的项目的顺序为x列,而id为非1的项目的顺序为y列。您可以使用order by子句中的条件来实现这一点。以下是MySQL中的一种简单方法: order by (id = 1) desc, id; 当id采用指定值时,表达式id=1的计算结果为1。否则计算结果为0 orderby表示先按

如何先列出id为x的数据,然后再列出数字顺序? 例如,我有如下数据:

0,
1,
1,
0,
1,
2,
56,
4
我希望得到以下结果:

1,
1,
1,
0,
0,
2,
4,
56

此外,我希望id为1的项目的顺序为x列,而id为非1的项目的顺序为y列。

您可以使用
order by
子句中的条件来实现这一点。以下是MySQL中的一种简单方法:

order by (id = 1) desc, id;
当id采用指定值时,表达式
id=1
的计算结果为1。否则计算结果为0

orderby表示先按这个表达式排序,然后按id排序

编辑:

如果要按另一列对其他所有内容进行排序,并且这些列的类型相同,请执行以下操作:

order by (id = 1) desc,
         (case when id = 1 then x else y end)
否则,您可以拆分它:

order by (id = 1) desc,
         (case when id = 1 then x end),
         (case when id = 1 then NULL else y end)

询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,以及它们不起作用的原因。请参阅FIELD()。这就是它的用途。如果我想让id为1的项目按x排序,而id不是1的项目按y排序,怎么样?@SuperHandsomeGelBoy这里
x
y
的意思是什么?列的名称,用x和y@SuperHandsomeGelBoy那你应该在你的问题中说出来。无论如何,当id=1时,您可以使用
按案例排序,然后使用x ELSE y END