mysql - MySQL使用子字符串定位来修剪或获取特定的字符串集
问题描述
我有一个cea_no
从我的表中命名的列。但我只想要它的特定字符串。我已经尝试了几种方法,但它对我不起作用。你知道我怎么能做到这一点吗?
这是我的查询
select id, cea_no, substring(cea_no, 1, locate('/', cea_no)) as x from xp_guru_listings limit 10;
结果
+----+-----------------------------+------------------+
| id | cea_no | x |
+----+-----------------------------+------------------+
| 1 | "CEA: R017722B / L3009740K" | "CEA: R017722B / |
| 2 | "CEA: R016023J / L3009793I" | "CEA: R016023J / |
| 3 | "CEA: R011571E / L3002382K" | "CEA: R011571E / |
| 4 | "CEA: R054044J / L3010738A" | "CEA: R054044J / |
| 5 | "CEA: R041180B / L3009250K" | "CEA: R041180B / |
| 6 | "CEA: R030152G / L3008022J" | "CEA: R030152G / |
| 7 | "CEA: R057318G / L3008022J" | "CEA: R057318G / |
| 8 | "CEA: R043256G / L3002382K" | "CEA: R043256G / |
| 9 | "CEA: R026068E / L3002382K" | "CEA: R026068E / |
| 10 | "CEA: R053784I / L3008022J" | "CEA: R053784I / |
+----+-----------------------------+------------------+
我只想要那R017722B
部分。删除"CEA:
, 字符串部分之后的第二组/
字符串。我怎样才能做到这一点?非常感谢。我正在使用 MySQL xampp。
解决方案
我会SUBSTRING_INDEX
在这里使用:
SELECT
id,
cea_no,
select
SUBSTRING_INDEX(SUBSTRING_INDEX(cea_no, 'CEA: ', -1), ' / ', 1) AS x
FROM xp_guru_listings;
要了解这个技巧是如何工作的,请考虑cea_no
. CEA: R017722B / L3009740K
第一次调用SUBSTRING_INDEX
返回R017722B / L3009740K
,第二次调用返回R017722B
。
推荐阅读
- java - 如何从数组对象中删除 £ 符号并保存它?
- .net - 将 .NET Core 登录到文件和控制台 - 带有时间戳
- oracle - 从静态内容 oracle apex 打印
- elasticsearch - Elasticsearch:搜索分数让我困惑。不同匹配级别的相同分数
- java - 当按钮是图像时如何使用Java HttpURLConnection提交表单
- typescript - 导入 serverless-http 错误 - 无法调用类型缺少调用签名的表达式
- javascript - 使用 ESLint 和 Prettier 时在 VS Code 中提供哪些用户设置以进行格式化/linting?(阅读说明)
- survival-analysis - coxModelFrame.coxph(object) 中的错误:对 coxph 的调用中的无效对象集 x=TRUE
- asp.net-core - MVC Razor Core2.0 在视图中显示计算结果
- gradle - Gradle 类路径包含多个 SLF4J 绑定