如何在 MySQL 中剪切部分字符串?

Posted

技术标签:

【中文标题】如何在 MySQL 中剪切部分字符串?【英文标题】:How to cut part of a string in MySQL? 【发布时间】:2012-06-20 07:18:41 【问题描述】:

mysql 中,我有一个带有“bla bla bla YYY=76767 bla bla bla”的文本列。

我需要删掉76767这个号码。

如何在 SQL 中做到这一点?

【问题讨论】:

输出字符串bla bla bla YYY= bla bla bla会是什么?? 您要删除号码,还是提取号码? 您希望更新实际数据以从值中取出“76767”吗? 改为更新:***.com/questions/1876762/… ||正则表达式替换:***.com/questions/986826/… 【参考方案1】:

你可以使用

select substring_index(substring(mycol, instr(mycol, "=")+1), " ", 1)

获取=之后的第一个令牌。

这将返回76767


这分两步进行:

substring(mycol, instr(mycol, "=")+1)

返回=之后开始的字符串

substring_index( xxx , " ", 1)

得到你从“”分割得到的虚拟数组的第一个元素,因此返回xxx的第一个标记。

【讨论】:

更抽象/一般:将@frst@scnd 设置为分隔符。您要查找的术语介于 @frst@scnd 之间。在这种情况下,它是 SET @frst:='YYY='; SET @scnd:=''; 你要么想要更新,所以 UPDATE tbl set my_col = SUBSTRING_INDEX(SUBSTRING(my_col , INSTR(my_col , @frst)+1), @scnd, 1) WHERE my_col LIKE '%@scnd%'; 或者你想要选择,所以 SELECT SUBSTRING_INDEX(SUBSTRING(my_col , INSTR(my_col , @frst)+1), @scnd, 1) from WHERE my_col LIKE '%@scnd%';【参考方案2】:

消除您领域中的数字的最简单方法就是REPLACE它。

SELECT REPLACE(yourcolumn, '76767', '')
FROM yourtable;

您也可以使用SUBSTRINGINSTR 的组合。

【讨论】:

【参考方案3】:

如果您不想更新,请使用

UPDATE table_name SET column_name = REPLACE(column_name, '76767', '');

如果您不想在数据库中将 76767 替换为 bla bla bla,请使用

UPDATE table_name SET column_name = REPLACE(column_name, '76767', 'bla bla bla');

【讨论】:

以上是关于如何在 MySQL 中剪切部分字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jquery 中的字符串中剪切第一个字符?

目录部分

如何在python中的某个字符序列之后剪切

富文本框 .rtf 字符串与通过剪切和粘贴复制文本不同。如何获得相同的格式?

替代不剪切中间字符的“溢出:隐藏”

如何从3D对象中剪切掉一部分?