选择并更新mysql相同的查询

时间:2012-08-13 18:20:59

标签: php mysql

我正在运行一个查询,从一个表中选择一个id数组,这样我就可以用结果数据集中的数据更新另一个表。

//db query result
$query = "SELECT image_id FROM jos_jxgallery_images ORDER BY jos_jxgallery_images.image_id DESC LIMIT 25";
 $query_execute = mysql_query($query);
mysql_close($db_config);

 while ($items = mysql_fetch_array($query_execute)) {
 echo $items['image_id']; 
 echo '<br/>';
}

我想我需要在while循环中执行此操作,我只需要在那里使用echo来查看items变量中的内容。这没问题。我认为要做的事情是在while循环中。我想用我的另一个表的实际更新SET查询替换'echoing'。有点像...

while ($items = mysql_fetch_array($query_execute)) {
$q = "UPDATE jx_gallery_images_ratings SET image_id ='".$items.""; 
mysql_query($q);

但新表没有数据。有没有更好的方式来写这个...甚至可能作为一个查询或什么?任何帮助表示赞赏。

编辑:我应该更好地解释一下。该表是空的,我可以继续使用从一个表到另一个表的插入只是为了获得id。然而,在那之后......在某种程度上它有点像'临时'表。但不是真的。无论我在我的SELECT查询中从第一个表创建的image_id的顺序是什么(还有其他行除了image_id之外的排序,例如'hits')...所以第二个表需要使用相同的顺序更新of image_id的。可能是用cron工作多次运行这几个小片段。所以,是的,我正在尝试使用第一个表的SELECT查询的顺序更新第二个表,并将id再次放在我的第二个表中,再次......根据第一个SELECT查询的顺序。

3 个答案:

答案 0 :(得分:4)

如果表格为空,则应进行插入。您可以在单个查询中执行此操作:

INSERT INTO jx_gallery_images_ratings (image_id)
SELECT image_id FROM jos_jxgallery_images ORDER BY jos_jxgallery_images.image_id DESC LIMIT 25

请注意,您可能不会真正需要ORDER BY,并且您可以通过删除LIMIT一次为所有图像执行此操作

答案 1 :(得分:3)

类似的东西:

UPDATE tbl_updateme SET row_to_update = (SELECT row_you_need from tbl_target WHERE tbl_updateme.comparison_row = tbl_target.comparison_row)

答案 2 :(得分:0)

INSERT INTO jx_gallery_images_ratings (image_id) (SELECT image_id FROM jos_jxgallery_images ORDER BY jos_jxgallery_images.image_id DESC LIMIT 25)

简单方法是创建触发器,在使用动态SQL选择后更新表