首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL :如何将文本和数字拆分为"-“

MySQL :如何将文本和数字拆分为"-“
EN

Stack Overflow用户
提问于 2013-02-16 11:43:22
回答 3查看 1.6K关注 0票数 1

我想重写一些用户id,它是由文本和数字之间的"-“分割的。例如:

  • KT-12345
  • BA-98765
  • CC-98765
  • 伊塔-87987

从大量的数据中提取出来,这些数据与文字和数字混在一起。例如:

  • KT98798
  • CC94788
  • BB87600

所以问题是:我想让用户id从第二个例子变成第一个例子。如何在MySQL中实现。请建议一下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-16 11:53:09

代码语言:javascript
复制
SELECT
CASE
WHEN floor(substr(name, 3,1)) > 0
THEN CONCAT_WS('-', SUBSTRING(name, 1, 2), SUBSTRING(name, 3, LENGTH(name)))
ELSE CONCAT_WS('-', SUBSTRING(name, 1, 3), SUBSTRING(name, 4, LENGTH(name)))
END AS new_name
FROM test
票数 1
EN

Stack Overflow用户

发布于 2013-02-16 11:51:35

没有“选择”数据,但更新:

代码语言:javascript
复制
UPDATE `table` SET field = REPLACE(field, '-', '');
票数 0
EN

Stack Overflow用户

发布于 2013-02-16 12:41:00

这里是一个如何在php中使用它的例子。

代码语言:javascript
复制
$str = 'abc123';
preg_match('#([a-z]*)(\d*)#', $str, $match);
echo 'alpha: ' . $match[1];
echo 'num: ' . $match[2];?>  
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14909897

复制
相关文章

相似问题

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