条件Mysql按查询排序

问题描述 投票:0回答:2

我无法理解条件mysql order by。请帮助我们。 这是查询的顺序 order by if(salary > 0 or id is null or id = '', 1,0), id desc, salary.

mysql
2个回答
0
投票

您需要这个语法吗

order by  if( (salary > 0 or id is null or id = '' ), 1, 0), id desc, salary

0
投票

if() 函数有 3 个参数:

  1. 状况,
  2. 如果条件为真则返回值
  3. 如果条件为假则返回值

这是你的情况:

工资 > 0 或 id 为 null 或 id = ''

如果为真,则返回 1,如果为假,则返回 0,因为你给出了这些参数。

Order by 将按这些值对记录进行排序,因此条件评估为 false 的每条记录都将返回 0 并在条件评估为 true 的所有其他记录之前排序。

id desc --> 这不是条件 order by 的一部分,这是 order by 在第一个条件认为相等的记录之间进行排序的内容。

salary --> 这是order by排序时考虑的最后一列,只有前两列相等时才会考虑(例如:两条if条件返回0的记录,并且它们的id也相等,将按薪资栏排序)。

© www.soinside.com 2019 - 2024. All rights reserved.