2024年10月23日 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/