mysql - 在mysql中使用子字符串解析文本

标签 mysql parsing

我想使用子字符串解析文本。我们的文本格式如下:

N, Adele, A, 18

我们做的子字符串是这样的:

SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 2), ', ', -1) as 'Name', 
SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 4), ', ', -1) as 'Age', 

我们得到的输出是:

|   Name    |   Age |
|   Adele   |   18  |

但是我们想将文本格式更改为:

N Adele, A 18

正确的语法是什么,我可以解析位置 1 (N Adele) 中的文本并使用分隔符空格并获取 Adele 吗?那么下一个文本(A 18)也是如此?

我尝试这样做

SUBSTRING_INDEX(SUBSTRING_INDEX(text, ' ', 1), ', ', -1) as 'Name', 

但是我得到的输出只是

|   Name    |
|   N       |

我希望的输出是这样的:

|   Name    |
|   Adele   |

最佳答案

这里假设你想改变原来的数据结构并且仍然能够得到结果。您将数据结构更改为:

N Adele, A 18 -- etc

由于可能有多个名称作为名称(空格分隔),我之前的示例不正确。

您可以直接用空格删除 NA,因为知道它们只会有两个字符长并且它们将始终存在,就像这样:

SUBSTRING(TRIM(SUBSTRING_INDEX(`text`, ',', 1)), 3) AS 'Name',
SUBSTRING(TRIM(SUBSTRING_INDEX(`text`, ',', -1)), 3) AS 'Age'

获取:

Name   |   Age
--------------------
Adele  |   18

关于mysql - 在mysql中使用子字符串解析文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297424/

相关文章:

php - 我想运行查询来获取 catagory_name 的层次结构

mysql - 转义 Node.JS MySQL 问题

java - Jackson - 如何解析这个字段?

python - 在 Python 中分析文本文件

php - mysql_query 成功但获取 mysql_fetch_array() 期望参数 1 为资源

mysql - 使用 MySQL Connector/Arduino 获取 select 中的 varchar 值

php - Mysql中如何实现表的邻接

java - IVR 风格的对话系统/工作流程/菜单

parsing - 如何通过 org-element 优雅地解析 org-mode

mysql - 在 MySQL 中设计数据库时的最佳实践