更新表列同时作为查询?

时间:2013-03-15 11:36:17

标签: php mysql

我在我的表中将id设置为自动增量列,我正在尝试将列id中的数据复制到列user_id。

下面的查询插入数据并自动递增列id,但是我希望列user_id具有与id相同的值,因此如果id是自动递增到31,那么user_id也将是31.

这是我正在使用的查询:

$query="INSERT INTO ptb_users (user_id,
id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."'
)";
$result = mysql_query("UPDATE ptb_users SET user_id=id");
mysql_query($query) or die();

我遇到的问题是id和user_id之间的更新/复制只会在另一个用户注册/第二次运行查询后才会发生此当前注册。

所以说需要将id 31复制到user_id列,直到另一个用户第二次注册/运行查询时才会发生这种情况。如果注册的新人是id 32,那么在id 32第二次注册/运行查询之前,用户id和user_id之间的更新(id 31)将不会发生。

如何通过查询或查询完成后更新,以便当id 31注册/运行查询时,id和user_id之间的更新在查询运行的同时发生?

我真的希望将id和user_id作为自动增量但是因为它不可能有两个自动增量字段我试图将自动增量结果从id复制到user_id我需要这样做因为我的代码在我的网站上交叉引用两列以确保安全。

1 个答案:

答案 0 :(得分:-1)

您的更新查询首先运行,替换呼叫订单。

...    
mysql_query($query) or die();
$result = mysql_query("UPDATE ptb_users SET user_id=id");
...

我不知道你为什么在你的代码中使用这些动作,有很多更好的方法来做同样的事情。但是,请在更新语句中添加where条件,因为您的查询更新了所有表格并且它将运行缓慢,并且不是最佳解决方案。

相关问题