MySQL if字符串if sat开始

MySQL if字符串if sat开始,mysql,Mysql,我有一个表格,有时我需要替换开头的数字(如果存在)。如果前3个字符串匹配,我如何在不匹配整个字符串的情况下执行此操作 谢谢 SELECT name, REPLACE(number, '338', '08') from contacts group by name 使用IF或CASE,并使用子字符串操作而不是REPLACE(因为REPLACE将进行多次替换,而不仅仅是在开始时) 您可以使用LEFT()进行此操作,然后在字符串的末尾使用CONCAT select concat(replace( l

我有一个表格,有时我需要替换开头的数字(如果存在)。如果前3个字符串匹配,我如何在不匹配整个字符串的情况下执行此操作

谢谢

SELECT name, REPLACE(number, '338', '08')
from contacts
group by name

使用
IF
CASE
,并使用子字符串操作而不是
REPLACE
(因为
REPLACE
将进行多次替换,而不仅仅是在开始时)

您可以使用LEFT()进行此操作,然后在字符串的末尾使用CONCAT

select concat(replace( left(number,3),'338','08'),substr(number,4))

但电话号码可以用多种方式书写。(+33xxxx,(33)xxxxx,0033xxxxx,…)这并不是那么简单。

谢谢,这很有效!数字4代表什么?这是子字符串的起始位置。
select concat(replace( left(number,3),'338','08'),substr(number,4))