2016-06-16 4 views
0

表示列を並べ替え、順番どおりに並べ替える必要があります。以下のようなものがありますか行カウントでmysqlクエリを更新するにはどうすればいいですか

UPDATE foo 
INNER JOIN bar ON foo.barid = bar.id 
SET foo.display = !rowcount! 
WHERE bar.baz = 1 
ORDER BY foo.display; 
+0

なぜシーケンスを保存しますか?テーブル内のデータが変更されるたびに更新する必要があります。シーケンスをオンザフライで選択してください –

+0

@宝探しシーケンスを簡単に編集するときに挿入を行います。 – SystemicPlural

答えて

1

あなたはこれが欲しいですか?

UPDATE foo 
INNER JOIN (
    SELECT t2.id, @rowNo := @rowNo + 1 AS rowcount 
    FROM foo t1 
    INNER JOIN bar t2 ON t1.barid = t2.id 
    INNER JOIN (SELECT @rowNo := 0) t 
    WHERE t2.baz = 1 
    ORDER BY t1.display) bar ON foo.barid = bar.id 
SET foo.display = bar.rowcount 
関連する問題