1

我想要实现的是在一个表中的 2 行之间移动数据。

Column A
--------
FN2
1 200x310mm
2 400x260mm[+0.84]
3 500x500mm[+11.34]

Column B
--------
0.0000   
0.0000    
0.0000    
0.0000

这是数据移动后的样子:

Column A
--------
FN2
1 200x310mm
2 400x260mm
3 500x500mm

Column B
--------
0.0000   
0.0000    
+0.84    
+11.34

我想要的是 [ ] 之间的查询移到 B 列并替换 0.0000

我怎样才能做到这一点?

亲切的问候

4

2 回答 2

1

只是为了说明亚达夫所说的

$query = "SELECT columnID, columnA FROM table";
$result = mysql_query($query,$conn);

while ($row = mysql_fetch_array($result)){

$id = $row['columnID'];
$a = $row['columnA'];

$pos1 = strpos($a,"[")+1;
$pos2 = strpos($a,"]");

$b = substr($a,$pos1,$pos2-$pos1);

$query = "UPDATE table SET columnB = $b WHERE columnID = $id";
mysql_query($query,$conn);


}//end while

编辑:亚达夫显然在我打字时提出了一个更好的答案......

于 2013-05-10T16:51:03.023 回答
0

试试这个它对你有用我用 id 作为唯一键......并且测试是我的数据库

<?php 
    $con=mysql_connect("localhost","root","");
    $db=mysql_select_db("test");
    $query=mysql_query("SELECT * FROM test where columnA LIKE '%[%]'");
    while($row=mysql_fetch_assoc($query))
    {
        if(preg_match_all('/\[(.*?)\]/',$row['columnA'],$match))
        {            
           mysql_query("UPDATE test SET columnB='".$match[1][0]."' WHERE id=".$row['id']."");
        }
    }

?>
于 2013-05-10T16:34:46.063 回答