我在自然排序(http://www.mysqltutorial.org/mysql-natural-sorting/)上阅读了此链接,并将其应用于非常小的数据集。
数据集:
ImageItem
我的MySQL查询:
In-Season
Phase 1
Phase 10
Phase 2
Phase 3
Phase 4
Phase 5
Phase 6
Phase 7
Phase 8
Phase 9
Pre-Season
Some other phase
Summer
但是结果未按预期显示。它已经在其他查询上起作用了,但不是这个查询,我很困惑为什么未按预期显示。
预期产量
select phaseLabel
from phase
ORDER BY LENGTH(phaseLabel) , phaseLabel
另一个奇怪的事情是,当我将文本粘贴到Google表格中时,排序的作用与将第10阶段紧随第1阶段而不是所需的第9阶段相同。
还有另一种方法可以编写此查询以获取预期格式的订单吗?
更新
In-Season
Phase 1
Phase 2
Phase 3
Phase 4
Phase 5
Phase 6
Phase 7
Phase 8
Phase 9
Phase 10
Pre-Season
Some other phase
Summer
值只是填充数据。用户将提供此数据。他们可能使用术语Phase N
是很合理的,但我不能认为这是事实。我意识到使用自己的填充数据无法按预期显示数据,因此出现了这个问题。