0

嗨,我真的是编程新手(菜鸟),因此我需要在 MySQL 数据库中将 de 值从一个列更改为另一个列。这里有一些信息:数据库:项目,表:用户,column2:number1,column3:number2。在number1中,我有这两种形式的数字数据:91234567或者1000123456我想将它们更改为这种形式:91aaaa67或者91 * * * * 671000aaaa56或将 a's 更改为 *'s 并将它们放在number2中。该表有几个用户,每个用户的数字完全不同。这意味着,在这两种情况下,我都想将 column2 ( number1 )中的数字从右到左更改第三到第六位,并将它们存储在 column3 (编号 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。

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

4

2 回答 2

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

SQLFiddle 演示

于 2013-10-30T22:00:02.460 回答
0

你应该可以这样做

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
于 2013-10-30T22:03:07.433 回答