MySQL 使用 MySQL,能否对一列进行排序但允许 0 出现在最后?

2024年10月23日 MySQL 使用 MySQL 能否对一列进行排序但允许 0 出现在最后 极客笔记

MySQL 使用 MySQL,能否对一列进行排序但允许 0 出现在最后?

在使用 MySQL 对数据进行排序时,通常会使用 ORDER BY 语句实现。但是,如何才能对一列进行排序,同时允许 0 出现在最后呢?本文将通过示例代码演示如何实现此功能。

首先,我们创建一个示例表example_table,其中包含一个列example_column

CREATE TABLE example_table (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `example_column` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
);

接下来,我们向表中插入一些示例数据:

INSERT INTO example_table (example_column) VALUES (1), (3), (2), (0), (4), (0), (5), (0), (6);

现在,我们要对example_column这一列进行排序,但是希望 0 出现在最后。为了实现这一目标,我们可以使用 MySQL 中的条件语句和运算符:

SELECT *
FROM example_table
ORDER BY 
  CASE WHEN example_column = 0 THEN 1 ELSE 0 END, 
  example_column ASC;

在上面的代码中,我们首先使用CASE WHEN条件语句,将所有值为 0 的行排序到最后,然后再将其他行按example_column的值进行升序排列。

下面是运行以上代码的结果:

+----+----------------+
| id | example_column |
+----+----------------+
|  1 |              1 |
|  3 |              2 |
|  2 |              3 |
|  5 |              4 |
|  7 |              5 |
|  9 |              6 |
|  4 |              0 |
|  6 |              0 |
|  8 |              0 |
+----+----------------+

可以看到,排序结果满足我们的要求。

阅读更多:MySQL 教程

结论

在 MySQL 中,使用条件语句和运算符可以轻松实现对一列进行排序,同时允许 0 出现在最后。我们只需要将值为 0 的行排在最后,并将其他行按照指定的排序规则进行排序即可。

本文链接:http://so.lmcjl.com/news/16001/

展开阅读全文