gpt4 book ai didi

mysql - 查询MySQL时使用自然排序

转载 作者:行者123 更新时间:2023-11-29 10:37:37 24 4
gpt4 key购买 nike

我在一个表格中存储了一些数据,如下所示。

+------+
| code |
+------+
| Z1 |
| Z2 |
| Z3 |
| Z4 |
| Z10 |
| Z11 |
| Z12 |
| Z13 |
| Z20 |
| ZA |
| ZBN |
| ZFJK |
| ZX |
+------+

运行从代码中选择代码返回:

+------+
| code |
+------+
| Z1 |
| Z10 |
| Z11 |
| Z12 |
| Z13 |
| Z2 |
| Z20 |
| Z3 |
| Z4 |
| ZA |
| ZBN |
| ZFJK |
| ZX |
+------+

我喜欢做的是通过诸如 SELECT code FROM 之类的方式获取前 3 个代码 Z1Z2Z3代码 WHERE code >= 'Z1' LIMIT 3。然而,该语句返回,考虑到 MySQL 如何对以下数据进行排序,这是预期的。

+------+
| code |
+------+
| Z1 |
| Z10 |
| Z11 |
+------+

在获得前 3 个代码后,我喜欢获得前 3 个代码后面的 3 个代码。像这样的 SELECT code FROMcodes WHERE code > 'Z3' LIMIT 3 然后获取 Z4Z10Z11 >。接下来的 3 项是 Z12Z13Z20 等等。

如果我查询所有项目,我可以使用过程自然对输出进行排序,但我只想拥有 3 个项目,紧接着基于 natural< 返回的前 3 个项目 排序。我可以在 MySQL 中实现这一点,还是应该获取所有数据并在查询数据库的程序中操作数据?

SQLFiddle -> here

最佳答案

您可以按顺序使用 lpad

SELECT code FROM codes
order by lpad(code , 8,'0')

关于mysql - 查询MySQL时使用自然排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46138996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com