mysql - MySQL修剪或使用子字符串定位获取特定的字符串集

标签 mysql sql database sqlite

我的表中有一列名为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_noCEA: R017722B / L3009740K值。第一次调用SUBSTRING_INDEX返回R017722B / L3009740K,第二次调用返回R017722B

关于mysql - MySQL修剪或使用子字符串定位获取特定的字符串集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59368299/

相关文章:

标签系统的 MySQL 模式和 CRUD 查询

java - 连接两个表并在 thymeleaf 中显示检索到的信息

sql - 如何将 BigQuery 嵌套记录取消嵌套到多列中

SQL查询麻烦

mysql - 从连接表中提取信息的 SQL 查询

sql - Oracle数据库触发器编译问题

mysql - 如果 (SELECT...) = 0 插入。在MySql中

SQL Server 2008 : how to select sum of all sessions where difference between two consecutive sessions is less than 10 minutes

python - mysql表中的"where"

php - 检查两列条件