当前位置: 首页 > 知识库问答 >
问题:

在MySQL中对varchar中包含整数和多点的数据进行排序

阎淮晨
2023-03-14

在我的项目中,我将文档存储在MySQL DB中。一个表包含标题号(t_nm)和标题。我想按标题号以正确的顺序列出这张表。由于存储在varchar中的数据,“SELECT*FROM table ORDER by t_nm”不能正常工作。

正确的查询是什么?

t_nm(varchar)标题(varchar)

+------+----------------------+
| t_nm | title                |
+------+----------------------+
| 0.1   | A.MANIVANNAN        |
| 1.0   | M.ELUMALAI          |
| 10.3  | SAMPATH.R           |
| 1.2   | S.PAULRAJ           |
| 1.2.1 | A.ASHOK KUMAR       |
| 2.1   | S.JAYAKUMAR         |
| 9.0   | S.CINRAS            |
| 10.1  | P.MURUGAN           |

我想用正确的顺序对这些数据进行排序,如下所示

+------+----------------------+
| t_nm | title                |
+------+----------------------+
| 0.1   | A.MANIVANNAN        |
| 1.0   | M.ELUMALAI          |
| 1.2   | S.PAULRAJ           |
| 1.2.1 | A.ASHOK KUMAR       |
| 2.1   | S.JAYAKUMAR         |
| 9.0   | S.CINRAS            |
| 10.1  | P.MURUGAN           |
| 10.3  | SAMPATH.R           |

共有1个答案

叶光华
2023-03-14

我没有安装mySQL,所以无法进行测试。在排序之前测试将varchar转换为decimal。

它应该如下所示:从表顺序中选择*,按强制转换(t_nmAS DECIMAL(10,6));

Ok,然后用'.'将它分解成数组,作为delemiter作为integer

例如:按string_to_array(t_nmAS,'.')::Int[]ASC从表顺序选择*

 类似资料:
  • 问题内容: 我有一个类型字段。即使它是type ,它也存储带有可选前导零的整数值。排序按字典顺序排序(在之前)。如何订购的数值(来之前)? 当前,我使用查询: 问题答案: 有几种方法可以做到这一点: 将它们存储为数值而不是字符串。您已经打折了,因为您希望保持字符串像完整的前导零。 按字符串顺序转换为数字。这将起作用,但请注意,这对于大型数据库而言是性能的杀手er。每行函数的扩展性不是很好。 添加第

  • 本文向大家介绍对同时包含整数值和小数值的MongoDB字段进行排序,包括了对同时包含整数值和小数值的MongoDB字段进行排序的使用技巧和注意事项,需要的朋友参考一下 要进行排序,请在MongoDB中使用sort()。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是对包含整数和小数值的MongoDB字段进行排序的查询- 这将产生以下输出-

  • 问题内容: 我正在尝试对字符串列( 包含数字 )进行排序。 您会看到Mysql的自然排序算法放在后面( 对于大多数应用程序来说都可以 ),但是我有独特的需求,因此我希望结果应该像这样排序。 仅使用SQL 是否可能,或者我必须在应用程序级别操纵结果集? 问题答案: 继续 假设 它始终为WORD_space_NUMBER,这应该可行: 使用POSITION查找空间,使用SUBSTRING捕获其后的数字

  • 我有一个整数列表,需要根据它们包含的数字5的数量进行排序。我必须为它实现比较器接口。 注意(大小写):如果两个数字具有相同的“5”数字,或者它们不包含“5”,则它们应按升序排列。 示例:525155555,155555 输出:1515552555555 解释: 15有一个'5'数字 155有两个'5'数字 525有两个'5'数字 555有三个数字 5555有四个'5'数字。 应根据这一点对其进行分

  • 问题内容: 我的字符串包含很多与我的数据库相对应的ID。喜欢: 然后,我执行mySQL查询以选择所有这些行: 我希望mySQL按照我在IN()中选择的顺序返回行。 所以如果我有 在PHP中进行提取时,第一行将是#2。没有任何ORDER BY,看起来它首先返回最低的ID。 让我知道您是否需要进一步的扩展。 问题答案: 您应该可以通过如下功能执行此操作: 那是: 这篇博客文章的更多内容: 使用列值对M

  • 问题内容: 该问题旨在作为有关PHP中数组排序问题的参考。容易想到您的特定案例是独特的,值得提出新的问题,但是实际上大多数都是此页面上一种解决方案的细微变化。 如果您的问题作为该问题的重复而被关闭,请仅在您可以解释为什么该问题与以下所有内容明显不同时才要求重新提出您的问题。 如何在PHP中对数组排序? 如何在PHP中对 复杂 数组进行排序? 如何在PHP中对对象数组进行排序? 有关使用PHP现有功