php,sql - 如何改变一列的值并将其插入其他列

时间:2016-10-15 15:14:02

标签: php mysql

我想从列column1中获取值并删除所有值 (空格,%20,%2520,_(下划线), - (连字符)和。(点))并将值保存到其他column2中的相应位置。<登记/> 这是正确的方法吗?这会工作吗?

$conn = new mysqli($servername, $username, $password,$dbname);

$sql= "SELECT column1 FROM table" ;

$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {


    $x= $row["column1"] ;


$find=array(" ","%20","%2520",".","-","_");
$x= str_replace($find,'',$x);


               $sql2 ="INSERT INTO table
             ( column2 )
             VALUES
             ( '$x' )";

              if ($conn->query($sql2) === TRUE) {
               echo "Record Created <br>";

                }

              else {
               echo "Error creating Record: " . $conn->error;
               }

    }
} else {
    echo "0 results";
}
$conn->close();

2 个答案:

答案 0 :(得分:1)

您需要Update而不是Insert

使用REPLACE功能删除列中不需要的字符

首先运行select并检查一切是否正常,然后运行update

SELECT column1,
       Replace(Replace(Replace(Replace(Replace(Replace(column1, ' ', ''), '%2520', ''), '%20', ''), '_', ''), '-', ''), '.', '') AS column2
FROM   yourtable 

UPDATE tablename
SET    column2 = Replace(Replace(Replace(Replace(Replace(Replace(column1, ' ', ''), '%2520', ''), '%20', ''), '_', ''), '-', ''), '.', '') 

答案 1 :(得分:0)

First Step

UPDATE table SET column1 = column2

Second Step

UPDATE table SET column2 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(column2, ' ', '') , '%20', '') ,'%2520', ''), '.', '') , '-', '') , '_', '')