我有一个名为"take"的布尔列,我该如何设置它,以便在每天午夜将每个列的条目设置为false?文件将如何运行?它只是一个独立的php文件,每天晚上都能工作吗?
处理这种情况的典型方法是避免它。不要每天运行一批进行一般更新,这很昂贵,而且没有必要。
相反,将布尔列替换为日期。将其设置为当前日期,而不是将布尔值设置为true,并设置为null,而不是设置布尔值为false。
然后读取这样的值,假设列为date_taken
:
SELECT coalesce((date_taken=current_date),false) AS taken, ... FROM tablename;
- 如果是
date_taken=current_date
,则表示它已在今天设置,因此它产生true - 如果是
date_taken<>current_date
,则它已被设置但更早,因此它产生false,就好像午夜更新批处理已经运行一样 - 如果
date_taken
为null,则它从未被设置或设置为null,并且coalesce()
产生false