MySQL の監査証跡を使用して、特定の期間に特定の値を持つレコードをどのように見つけますか?
1 週間前にサイト管理者 (role_id=1) だったユーザーの ID を取得したいとします。
テーブルを考えると:
**USER**
id | role_id | ...
リビジョンテーブル:
**TABLE_HISTORY**
table_name | date | id | column_name | column_value
(良くも悪くもそこに作成データを保存していて、ソフト削除していると仮定します)
たった 1 つのクエリを使用して、 1 週間前の今日 role_id = 1 の人を見つけるにはどうすればよいでしょうか? ロールが 1 から 2 に変更された可能性があることに注意してください。つまり、role_id = 1 の場所を選択することはできません。
多分このような何か?:
SELECT * FROM
(
SELECT *
WHERE (date < $timestamp AND column_name = 'role_id')
LIMIT 1
)
WHERE ('is_admin'=1)