1

数人の友人と音楽ブログを作成し、投稿ビューを追跡するために MySQL テーブルを作成しました。管理者ビューを追跡する列が 1 つと、各投稿のユーザー ビューを追跡する列が 1 つあります。

ほとんどの管理ビュー、ほとんどのユーザー ビュー、および合計ビューで簡単に表示および並べ替えできるページを作成しています。MySQL データベースに「合計ビュー」の列を作成しませんでした (計算するには、管理ビューをユーザー ビューに追加するだけです。単純明快です)。

クエリを実行することで管理ビューで簡単に並べ替えることができますがSELECT * FROM log ORDER BY ADMIN DESC、ユーザー ビューでも同じことができますが、次のような簡単な方法はありますSELECT * FROM log ORDER BY ADMIN + USER DESCか? そうでない場合は、コードをいじって独自のソート アルゴリズムを提供する必要があります。

ありがとうございます。

4

2 に答える 2

5

クエリはあなたが言ったとおりです:

SELECT  *
FROM    log
ORDER BY
        admin + user DESC

合計ビュー用に別の列を作成してインデックスを作成すると、クエリで使用できます。

SELECT  *
FROM    log
ORDER BY
        total_views DESC
LIMIT   10

SELECTこれにより、限られたクエリの速度が向上します。この方法では、トップ 10 のコメントのみを選択した場合でも、テーブル全体をスキャンして並べ替える必要があります。

于 2013-01-15T20:31:12.087 に答える
1

並べ替え以外に合計ビューを使用する場合は、次のことをお勧めします。

SELECT *,(`admin`+`user`) as `total` FROM `log` ORDER BY `total` DESC

これにより、計算で表示または使用できる「合計」フィールドが結果に追加されます。

于 2013-01-15T20:41:02.097 に答える