我有一个名为“take”的布尔列,我将如何设置它,以便每个列的每个列在每天的午夜都设置为false?文件将如何运行?它只是一个独立的PHP文件,每晚都有效吗?
答案 0 :(得分:0)
处理这种情况的典型方法是避免。不要运行每日批处理进行一般更新,这样做成本高昂,而且没有必要。
而是用日期替换布尔列。将其设置为当前日期,而不是将布尔值设置为true,并将其设置为null,而不是将布尔值设置为false。
然后读取这样的值,假设列为date_taken
:
SELECT coalesce((date_taken=current_date),false) AS taken, ... FROM tablename;
date_taken=current_date
,则表示它已于今天设置,因此产生真实。date_taken<>current_date
,它已经设置但是更早,所以它会产生错误,就像午夜更新批次已经运行一样。date_taken
为null,则从未设置或设置为null,coalesce()
产生错误。