在我的项目中,我将文档存储在MySQL DB中。表格包含标题编号(t_nm)和标题。我想按照标题号列出正确的顺序列表。由于存储在varchar中的数据“SELECT * FROM table ORDER by t_nm”无法正常工作。
什么是正确的查询?
t_nm(varchar) title(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 |
答案 0 :(得分:0)
我没有安装mySQL,所以我无法测试。 在排序之前测试将varchar转换为十进制。
它应该如下: SELECT * FROM table ORDER by CAST(t_nmAS DECIMAL(10,6));
好的,然后用'在数组中将其爆炸。"作为整数的删除者
ex: SELECT * FROM表ORDER BY string_to_array(t_nmAS,'。'):: int [] ASC