0

使用 MySQL 中的审计跟踪,您将如何找到在特定时间范围内具有特定值的记录?

假设我想获取一周前是站点管理员的用户的 ID (role_id=1)。

给定表格:

**USER**
id | role_id | ...

和一个修订表:

**TABLE_HISTORY**
table_name | date | id | column_name | column_value

(假设我将创建数据存储在那里,无论好坏,我正在软删除)

您如何仅使用一个查询找到一周前今天 role_id = 1 的人?请记住,他们的角色可能在角色为 1 后已更改为 2,这意味着您不能只选择 where role_id = 1

可能是这样的?:

SELECT * FROM 
(
 SELECT * 
 WHERE (date < $timestamp AND column_name = 'role_id') 
 LIMIT 1
) 
WHERE ('is_admin'=1)
4

0 回答 0