首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL中的列表中提取项目

从MySQL中的列表中提取项目
EN

Stack Overflow用户
提问于 2014-11-11 08:09:27
回答 1查看 192关注 0票数 1

我有一个名为'Department‘的列,它有一个文本字符串,如下所示:

N 1,社会学/n 2,遗传学/n 3,数学..etc。

我正在尝试使用基于数字1、2、3等的LIKE或If、Then语句提取部门名称。我对MySQL比较陌生,因此如果有任何反馈,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-11-11 08:30:25

我不太确定我是否了解您的源列数据的确切性质。

如果您说示例中的一列包含由斜杠分隔的部门列表,并且您希望提取给定一个已知数字的单个部门,则可以这样做

代码语言:javascript
复制
select trim(substring_index(substring_index(column_name,'n 2,', -1),'/',1)) from mytable where <your criteria>;

例如。

代码语言:javascript
复制
> select trim(substring_index(substring_index( 'n 1, Sociology / n 2, Genetics / n 3, Math','n 2,',-1),'/',1)) as 'Department';
+------------+
| Department |
+------------+
| Genetics   |
+------------+
1 row in set (0.00 sec)

我个人尽量避免在mysql本身中解析blobs,并委托该代码,但如果出于任何原因,这可能会有所帮助(等待我对需求的正确解释)。

解析像这样的“半结构化”数据的最大问题是,当您的一个分隔符被用作未转义的文字值时,无论是在SQL中还是在应用程序级别。例如,斜杠用作分隔符和实际部门名称

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26855347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档