首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL和regex,在逗号上反转名字和姓氏。

问使用SQL和regex,在逗号上反转名字和姓氏。
EN

Stack Overflow用户
提问于 2022-08-02 14:01:13
回答 1查看 52关注 0票数 -2

这更适合于实际的编程语言,而不是SQL和regex,但我想知道它是否实际可行。

背景:我正在处理一些棘手的联接和基数,以及通过数值(例如0001)没有唯一I的表。只是员工的名字(字符串)。我还在处理一个不支持物化视图的DB,因此分割成两列并合并回一起并不是当前的选项。

我有几个表,列在一个列中作为姓、名(例如Smith-Yates、John和Greene、Lynda)和一个表,其中一个表中的雇员名列为姓名、姓氏(例如John Smith-Yates和Lynda Greene)。有没有一种方法可以使用REGEXP()来使用MySQL交换逗号上的名字和姓氏--也可以补偿双桶姓?

感谢您所能提供的洞察力。

EN

回答 1

Stack Overflow用户

发布于 2022-08-02 14:45:46

对于您描述的任务,您不需要正则表达式。可以使用索引()函数拆分字符串。

演示:

代码语言:javascript
复制
mysql> set @name = 'Smith-Yates, John';

mysql> select substring_index(@name, ',', 1) as last_name;
+-------------+
| last_name   |
+-------------+
| Smith-Yates |
+-------------+

mysql> select trim(substring_index(@name, ',', -1)) as first_name;
+------------+
| first_name |
+------------+
| John       |
+------------+

但是不可避免地会有一些像"Downy,Jr.,Robert“这样的例子。

您确实应该将名字和姓氏存储在单独的列中,或者以规范格式存储它们。

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

https://stackoverflow.com/questions/73208890

复制
相关文章

相似问题

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