0

結果のデータセットのデータで別のテーブルを更新できるように、1 つのテーブルから 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ループでそれを行う必要があると思います.アイテム変数の内容を確認するためにそこにエコーがあります. それはうまくいきます。やるべきことはwhileループにあると思います..「エコー」を他のテーブルの実際の更新SETクエリに置き換えたいと思います。何かのようなもの...

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

しかし、新しいテーブルにはデータがありません。これを書くためのより良い方法はありますか...おそらく1つのクエリか何かとしてでも? どんな助けでも大歓迎です。

編集:もう少し説明する必要があります。テーブルは空です。ID を取得するためだけに、あるテーブルから別のテーブルへの挿入を使用できます。ただし、その後は...ある意味では「一時」テーブルです。しかし、そうではありません。最初のテーブルから SELECT クエリで作成した image_id の順序に関係なく (たとえば、「ヒット」のように、image_id 以外で並べ替える行が他にもあります)...そのため、2 番目のテーブルを同じ順序で更新する必要があります。 image_id の。おそらく、このいくつかの小さなスニペットを cron ジョブで数回実行しているでしょう。だから、ええ、最初のテーブルの SELECT クエリの順序で 2 番目のテーブルを更新しようとしていて、2 番目のテーブルに ID を入れようとしています。最初の SELECT クエリの順序に従って。

4

3 に答える 3

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を削除することで、すべての画像に対して一度に行うことができます。

于 2012-08-13T18:26:00.250 に答える
3

何かのようなもの:

UPDATE tbl_updateme SET row_to_update = (SELECT row_you_need from tbl_target WHERE tbl_updateme.comparison_row = tbl_target.comparison_row)
于 2012-08-13T18:30:34.490 に答える
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 で選択後にテーブルを更新するトリガーを作成することです

于 2012-08-13T18:39:19.913 に答える