【发布时间】:2023-02-22 08:51:17
【问题描述】:
我正在尝试按街道名称排序地址列表,然后是街道编号。此数据的两种形式都位于同一列中,即我的模式“数据”中的“地址”。
数据的格式类似于:
- 27 朗郡巡回赛
- 杜威路 109 号
- 26 泽克大道
- 1 朗郡巡回赛
- 26信天翁路
我试过了:
SELECT * FROM data ORDER BY address;
这给了我:
- 1 朗郡巡回赛
- 26信天翁路
- 26 泽克大道
- 27 朗郡巡回赛
- 杜威路 109 号
我也试过:
SELECT * FROM parcel_data.parcels ORDER BY CONVERT(SUBSTRING_INDEX(address, ' ', 1), UNSIGNED INTEGER);
这给了我一个不注意字母顺序但遵循数字的列表。 这看起来类似于:
- 1 朗郡巡回赛
- 26 Zeke Ln
- 26信天翁路
- 27 朗郡巡回赛
- 杜威路 109 号
理想情况下,我正在寻找的输出是:
- 26信天翁路
- 杜威路 109 号
- 1 朗郡巡回赛
- 27 朗郡巡回赛
- 26 泽克大道
首先按街道名称的字母顺序排列,然后对数字进行排序。
我怎么做?
TIA!
【问题讨论】:
-
Postgres 还是 MySQL?请仅标记您的实际数据库
-
@ysth 我的错——在这个项目中使用 MySQL
标签: mysql sql postgresql sql-order-by