1

私は読者が本のどこにいるかを追跡するデータベースを扱っています。これを行うには、ページ カウント列と現在のページ列を用意します。

(現在のページ/ページ数) に等しい「進行状況」列を追加する方法はありますか?

4

2 に答える 2

8

2 つのオプションがあります。次のいずれかでそのフィールドを作成できますSELECT

SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books;

またはVIEW、操作を明示的に記述せずにクエリを実行できる を作成します。

CREATE VIEW user_books_progress AS
  (SELECT book_id, user_id, (currentpage/pagecount) AS progress FROM user_books);

次に、ビューを通常のテーブルとしてクエリできます。

SELECT book_id, user_id, progress FROM user_books_progress;

算術演算子とビューの詳細については、次のドキュメントを参照してください。

11.5.1: 算術演算子
12.1.12. ビューの作成構文

于 2009-08-04T00:06:15.183 に答える
1

列を関数として定義することはできません。これには少なくとも 2 つの回避策があります。

  • BEFORE UPDATE トリガーを使用して進行状況列を更新します。BEFORE INSERT にも必要です。
  • 進行状況列を計算するビューを使用します。
于 2009-08-04T00:06:30.753 に答える