在mysql中,如果字符串重复,则子字符串查询无法正常工作

时间:2018-11-19 11:40:17

标签: sql mysqli

我要替换电话号码的最后5位数字。  我写了这个查询:

update users
    set
        mobile = Replace(mobile, SUBSTRING(mobile, 6, 5), 'xxxxx')
    where
        email="xxxxx@gmail.com"

对于像8100343397这样的数字来说效果很好 但是对于像9090909090这样的数字,它是从第二位代替第六位代替。

我想知道原因。

我知道它将与left和concat一起使用。

请只告诉我,如果字符串重复,上述内容为何不起作用。

1 个答案:

答案 0 :(得分:2)

您为什么要使用replace()

update users
    set mobile = concat(left(model, length(mobile) - 5), 'xxxxx')
    where email = 'xxxxx@gmail.com';

仅接受最后五个字符,然后附加所需的新值。