在mysql中替换*的数值

时间:2013-10-30 21:55:24

标签: php mysql

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

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

我尝试了Andriy M中的代码link但它对我不起作用,有关于RowSetToUpdate函数的错误,我认为它是针对SQL而不是MySQL。

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

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

2 个答案:

答案 0 :(得分:1)

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

SQLFiddle demo

答案 1 :(得分: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