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

如何在MySQL中剪切字符串的一部分?,mysql,sql,select,Mysql,Sql,Select,在MySQL中,我有一个带有“bla-bla-YYY=76767 bla-bla-bla”的文本列 我需要把电话号码改成767 如何在SQL中执行此操作?您可以使用 select substring_index(substring(mycol, instr(mycol, "=")+1), " ", 1) 获取=后的第一个令牌 这将返回76767 这分为两个步骤: substring(mycol, instr(mycol, "=")+1) 返回从= 及 获取通过“”拆分得到的虚拟数组的第一个

在MySQL中,我有一个带有“bla-bla-YYY=76767 bla-bla-bla”的文本列

我需要把电话号码改成767

如何在SQL中执行此操作?

您可以使用

select substring_index(substring(mycol, instr(mycol, "=")+1), " ", 1)
获取
=
后的第一个令牌

这将返回
76767


这分为两个步骤:

substring(mycol, instr(mycol, "=")+1)
返回从
=


获取通过“”拆分得到的虚拟数组的第一个元素,然后返回xxx的第一个标记。

消除字段中数字的最简单方法就是删除它


您也可以使用和的组合。

如果不想更新,请使用

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');

输出字符串
bla-bla-YYY=bla-bla-bla
会是什么?是要删除该数字,还是要获取该数字?是否要更新实际数据以从值中取出“76767”?改为更新:| | regex replace:
UPDATE table_name SET column_name = REPLACE(column_name, '76767', '');
UPDATE table_name SET column_name = REPLACE(column_name, '76767', 'bla bla bla');