我有一个我正在尝试解决的问题。
我正在尝试将更多逻辑放入我的 sql 调用中,以减少 php 必须执行的操作。一个这样的地方是确定用户是否已阅读某条消息的逻辑。它可以工作,但效果太好了,这是 SQL:
SELECT t.* FROM comment c
LEFT JOIN read_message rm ON c.id-rm.cid
WHERE c.author!=2 AND rm.User=2 AND c.tid=17 AND rm.Topic=17 AND c.Original_Date >= UNIX_TIMESTAMP()-3600*24*30 OR c.last_update >= UNIX_TIMESTAMP()-3600*24*30
问题是无论输入什么消息 ID,它总是会显示每条被认为是新的记录,但我希望它仅在 id 匹配时才显示。
简化我想要的:
根据消息 ID,我们可以查看用户是否已经阅读了此消息,但如果该消息超过 30 天,则自动将其视为旧消息。
问题是 30 天的数学,如果我把那部分拿出来它可以正常工作,但我希望它忽略任何超过 30 天的东西。
我在标签中列出了 codeigniter,因为这是我正在使用的框架,以防你需要知道这一点。