1

私が達成したいのは、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

Yadavが言ったことを説明するために

$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

編集:私が私のものを入力しているときに、Yadavは明らかにより良い答えを提案しました...

于 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 に答える