0

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)
4

0 に答える 0