mysql - 如何从 SQL 中的列值中仅提取纯文本?
问题描述
我有一列 (Existing Col) 包含字母数字值,我必须从中仅提取纯文本,如下例所示:
现有柱 | 必填列 |
---|---|
G14-巧克力钱543 | 巧克力钱 |
停车量 Q89 | 停车量 |
19 - 筹码费 - 20 | 筹码费 |
698 门票费 | 门票费 |
我尝试了 SUBSTRING 功能,但无法将其修改为仅采用纯文本并忽略其他所有内容。
SUBSTRING ( Existing Col,5 ,10 )
解决方案
假设你总是至少有两个词,你可以使用:
select regexp_substr(val, '([A-Za-z]+[A-Za-z ]+[A-Za-z]+)( |$)')
from (select 'G14 - Chocolate money 543' as val union all
select 'Parking amount Q89' union all
select '19 - Chips fee - 20' union all
select '698 Ticket fee'
) x
这是一个 db<>fiddle。
推荐阅读
- multithreading - MPI 代码使用的 CPU 资源多于分配的资源(过度提交)
- spring-boot - 将 Lucene 查询字符串直接从用户传递到 QueryParser 是否安全?
- javascript - setInterval 内部的 Promise
- laravel - 让我的“welcome.blade.php”识别在我的 Nuxt.js 文件夹中导入的 Vue 时遇到问题
- ios - 如何给标签数组元素的值?
- php - 为什么我的数组项没有传递到 foreach PHP for GraphQL 上的函数?
- angular - 一个空数组被推送到 localStorage 而不是数据
- clojure - Clojure:将值设置为键
- javascript - 在 javascript 中将数组转换为对象,与 d3 输出相同
- java - 将代码从 Java 更改为 Kotlin 后注释未正确转换