问题标签 [natural-sort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1488 浏览

sql - 按数字、字符对 varchar 列进行排序

我有一个varchar column [flat_number]具有一些价值的

我希望得到按数字排序的结果,然后先按字符排序

喜欢

我设法按数字对其进行排序(如果该列仅包含使用正则表达式的数字 0-9,我将其视为一个数字),然后我按字符对其进行排序,但它似乎对 A1A101A 的列值有效(有多个数字和字符的组合)

当前查询的工作方式为

如果该列仅包含数字 [0-9],我将其转换为 int 并将其排序为 ElSE,我将列拆分为 2 部分,并尝试在开头提取列字符并在结尾提取数字。

是否有更好的等待时间,并确保返回预期的输出

0 投票
4 回答
2269 浏览

javascript - 如何使用 Ember.js SortableMixin 按自然顺序排序?

Ember.SortableMixin

自然排序

0 投票
1 回答
2341 浏览

sorting - 如何使用自然排序顺序对 solr 中的文本/字符串进行排序?

我想按照以下方式对值列表进行排序:

  • 4
  • 5xa
  • 8kdjfew454
  • 9
  • 10
  • 999cc
  • b
  • c9
  • c10cc
  • c11

换句话说,有时被称为“自然排序”,其中文本在有文本的地方按字母/字典顺序排序,但在有数字的地方按数字排序,即使两者混合在同一个字符串中。

我无论如何都找不到在 Solr (4.0 atm) 中执行此操作。有没有标准的方法来做到这一点,或者至少有一个可行的“食谱”?

0 投票
2 回答
147 浏览

mysql - MySQL 自然排序(如 OSX Finder)

我已经搜索了很长时间,但是我找到的解决方案并没有按我的需要工作。

让我解释一下:我有一张包含数千种产品的表格,每个产品都有一个字母数字 SKU,也用于排序。该 SKU 包括:

Category Code(可变数量的字母字符),

Product Number(整数),

Product Model Variation(可选,可变数量的字母字符)

例如:(MANT 12 CL不带空格)


现在,我需要像这样订购它们(如果这些是文件名,OSX Finder 会完美地订购它们):

当然ORDER BY sku显然是错误的:

并且ORDER BY LENGTH(sku), sku在排序模型变体时遇到问题:

那么,有没有办法像 Finder 那样对这些东西进行排序?

(此外,一旦排序,有没有办法获得下一个和上一个产品?我不介意使用几个查询:此时优雅是我的最后一个问题......)

提前谢谢大家。


最后一件事:在我的搜索过程中,我找到了一个类似问题的答案, 但我不知道如何在 PHP 中使用它,所以我不知道它是否有效,实际上是我的问题的答案。

0 投票
4 回答
928 浏览

php - 如何在php中为人类排序(自然排序)关联数组?

如何在php中为人类排序(自然排序)关联数组?

以下代码:

//我打赌这里会发生排序

将输出: 10 - 1 - 7

以及如何对“数字”进行排序(对于人类)?喜欢: 1 - 7 - 10

如果'Number'是一个int,如果它是一个字符串怎么办?

0 投票
4 回答
257 浏览

mysql - 选择要按 desc 排序的查询 char 数字 id

我有示例数据

如果我使用SELECT myfield from mytable order by myfield DESC 我会得到这样的结果

请帮助做出这样的结果:

0 投票
2 回答
5512 浏览

java - 什么是“自然排序”?

我有一堂课:

sentDate在我的应用程序中,针对我现在拥有的所有用例以及未来设想的所有用例对消息进行排序。

这是否意味着消息的自然顺序是 on sentDate,并且Message该类可以Comparable基于该字段实现,或者是否有任何我的理解不对应的自然顺序的正式定义?

我知道我可以使用 Comparator,我问这个问题的原因是为了了解关于 X 类我应该问自己什么问题,以了解 X 类的对象是否具有按字段 Y 的自然排序。

0 投票
9 回答
20314 浏览

sql - 在sql server中将字符串排序为数字

我有一列包含这样的数据。破折号表示同一发票的多份副本,这些必须按升序排序

我必须按此数字按升序对其进行排序,但由于这是一个 varchar 字段,因此它按字母顺序排序,如下所示

为了解决这个问题,我尝试将 -(dash) 替换为空,然后将其转换为数字,然后对其进行排序

虽然这更好,而且有点像这样

有人建议我在 - (破折号)上拆分发票 ID,并在 2 个拆分部分上订购

喜欢=====> order by split1 asc,split2 asc (790109,1)

我认为这会起作用,但我将如何拆分列。

互联网上的各种拆分函数是那些返回表的函数,而在这种情况下,我需要一个标量函数。

还有其他可以使用的方法吗?数据显示在网格视图中,默认情况下,网格视图不支持对 2 列进行排序(我可以实现它:))所以如果有任何更简单的方法,我会非常好。

编辑:感谢所有答案。虽然每个答案都是正确的,但我选择了允许我将这些列合并到 GridView 排序中的答案,而对 sql 查询的重构最少。

0 投票
1 回答
462 浏览

php - 使用 postgresql 按字母数字顺序对数据进行排序

我的代码使用 php 5.3。我想按以下格式对我的数据进行排序。

01 - 101
号楼 01 - 150 号楼

02 号楼 - 100
号楼 02 号楼 - 105
号楼 03 号楼 - 099 号楼

这是我使用的 fetch 功能。
&我在我的代码中使用它如下。

我想按正确的顺序对其进行排序,如果财产没有建筑物,则仅按单元编号对其进行排序。欢迎对此问题提供任何帮助。谢谢。

0 投票
3 回答
1175 浏览

sql - 如何在同一字段中先按数字排序查询,然后按字符串排序

我在 PostgreSQL 9.0 中有一个数据库,它有一个带有字符串字段的表来存储客户端代码。这些代码是字母数字的,可以以字母或数字开头,例如1, 2, A0001-4, A0001-2, 10

我想先订购数字,然后按字符串订购,例如

我这样做to_number(fields, '99999999'),例如:

但是当代码像've',没有数字时,查询失败。

我能做些什么?