将mysql数据复制到同一个表中

时间:2012-03-01 10:38:01

标签: php mysql sql

我需要能够将没有userid的所有行复制到同一个表中,其userid等于1。 这是我的代码:(当我运行它时它不起作用),它确实使用echo显示items字段和widget id字段。但它不会插入数据。任何建议

    $sql=("SELECT * from options WHERE userid='' ");
    $resultat= mysql_query($sql);

    while($row = mysql_fetch_array($resultat))
  {
     $userid="1";
    echo $items.$widgetid."<br>";
      $widgetid = $row['widgetid'];
      $items = $row['items'];
       $stats = $row['stats'];
      $upd=("INSERT INTO options (userid, widgetid, items,stats)
VALUES ('$userid', '$widgetid','$items', '$stats')");
mysql_query($upd);
      }

4 个答案:

答案 0 :(得分:4)

INSERT INTO options 
SELECT '1' AS userid, widgetid, items, stats 
FROM options
WHERE userid = ''

假设这是表中声明的列的顺序。

答案 1 :(得分:1)

我认为您只需要更新userid =''

的行
update options 
set userid=1 
where userid='';


$upd=("INSERT INTO options (userid, widgetid, items,stats)
 select 1, widgetid, stats from options
 where userid='' ");

答案 2 :(得分:1)

create table newTable like oldTable;

insert into newTable
select * from oldTable
where userid = '';

但也许你真的需要像Naveen那样更新?

答案 3 :(得分:0)

在PHP中使用以下代码段

$upd= (
       "INSERT INTO 
        options (userid, widgetid, items,stats) 
        VALUES (1, '". $widgetid ."' , '". $items ."' , '". $stats ."')
       "
      );