Php 选择并更新同一查询
我正在运行一个查询,从一个表中选择一个id数组,以便使用结果数据集中的数据更新另一个表Php 选择并更新同一查询,php,mysql,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 =
//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/>';
}
但新表格没有数据。有没有更好的方法来写这篇文章……甚至可以作为一个查询或其他什么?感谢您的帮助
编辑:我应该解释得更好一点。这个表是空的,我可以继续使用从一个表到另一个表的插入来获取id。然而,在那之后…在某种程度上它是一个“临时”表。但不是真的。无论我在第一个表的SELECT查询中创建的图像id的顺序是什么(除了图像id之外,还有其他行需要排序,例如“hits”),因此第二个表需要使用相同的图像id顺序进行更新。可能会使用cron作业多次运行这个小片段。所以,是的,我正试图用第一个表的SELECT查询的顺序更新第二个表,并将id放在第二个表中,再次…根据第一个SELECT查询的顺序。如果表为空,您应该执行插入操作。您可以在一个查询中执行此操作,如下所示:
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,而且您可以通过取消限制一次对所有图像执行此操作,例如:
UPDATE tbl_updateme SET row_to_update = (SELECT row_you_need from tbl_target WHERE tbl_updateme.comparison_row = tbl_target.comparison_row)
或
简单的方法是创建触发器,在选择后用动态SQL更新表我认为您需要插入而不是更新?我实际上找到了另一个与此无关的解决方案,但这非常有用。谢谢,迈克
UPDATE tbl_updateme SET row_to_update = (SELECT row_you_need from tbl_target WHERE tbl_updateme.comparison_row = tbl_target.comparison_row)
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)