【发布时间】:2019-08-19 21:34:57
【问题描述】:
我有一张包含产品描述的表格。这些描述中包含产品尺寸,但并非全部位于同一位置。
如何从以下示例数据中仅提取数字宽度 说明
- 桌宽(厘米)100
- 床,宽度:90cm
- 办公桌宽度 - 200 厘米。颜色 - 黑色
- 500厘米宽的沙发
- 椅子-宽(50.5cm)
已使用 substring_index 函数获取 'width' 和 'cm' 之间的文本,但无法获取其中的数字。 (这不适用于上面的记录 1
SELECT description, substring_index(substring_index(description, 'width', -1),'cm', 1)
FROM productlisting
预期输出:
- 100
- 90
- 200
- 500
- 50.5
实际
- : 90
- 200
- 共 500 个
- (50.5
【问题讨论】:
-
输入不一致,这将是一场斗争。您可能需要多次解析数据以处理每种情况
-
这可能会有所帮助。 stackoverflow.com/questions/37268248/…
-
从不超过一个数字?
-
重新设计数据库以使其更加用户友好是否为时已晚?
-
使用 regex_replace() 就像 select regex_replace(description,'[^0-9]','')