替换 mysql 中 * 的数值


Replace numeric values for *'s in mysql

嗨,我真的很陌生编程(菜鸟),因此我需要在 MySQL 数据库中将 de 值从一个列更改为另一个列。这里有一些信息:数据库:项目,表:用户,列2:数字1,列3:数字2。在数字 1 中,我有以下两种形式的数字数据:912345671000123456 我想将它们更改为以下形式:91aaaa6791 * * * * 671000aaaa56或更改 * 的 a 并将它们放在数字 2 中。该表有多个用户,每个用户的数字完全不同。这意味着,在这两种情况下,我都想将第 2 列(数字 1)中的数字中的第三位到第六位数字从右到左更改,并将它们存储在第 3 列(数字 2)中。我尝试了以下代码:

UPDATE users SET number2 = REPLACE( number2,  '91234567',  '91****67' )

我在此链接中尝试了Andriy M的代码,但它对我不起作用,有关RowSetToUpdate函数出现了错误,我认为它是针对SQL而不是MySQL的

所以我不知道如何做到这一点并使其自动化,我还有一个 php 文档,其中包含正确填充数据库的表单。我只想将此函数添加到数据库中!!我在Windows环境中使用phpmyadmin,php 5.4.7,mysql 5.5.27。

希望你能帮到我,提前谢谢你!!

UPDATE users 
SET number2 = concat(left(number2, 2), '****', right(number2, 2))

SQLFiddle demo

你应该可以这样做

UPDATE users SET number2= CONCAT(LEFT(number1,2),'aaaa',RIGHT(number1,2)) WHERE LENGTH(number1) =8

UPDATE users SET number2= CONCAT(LEFT(number1,4),'aaaa',RIGHT(number1,2)) WHERE LENGTH(number1) =10