栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

插入之前如何计数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

插入之前如何计数?

我对

>
(分组依据中的)是否应该表示肯定
>=
,但是我认为这可以满足您的要求。

INSERT INTO cookies(id, email, cookie, date_time)SELECt NULL, $email, $hash, unix_timestamp()FROM cookieWHERe email = $email    AND NOT EXISTS (        SELECt COUNT(CASE WHEN date_time > UNIX_TIMESTAMP(now() - INTERVAL 1 HOUR)     THEN 1 ELSE NULL END) AS rowsInLastHour, COUNT(CASE WHEN date_time > UNIX_TIMESTAMP(now() - INTERVAL 1 DAY)     THEN 1 ELSE NULL END) AS rowsInLastDay, COUNT(CASE WHEN date_time > UNIX_TIMESTAMP(now() - INTERVAL 1 MONTH)   THEN 1 ELSE NULL END) AS rowsInLastMonth, COUNT(1) AS rowsEver        FROM cookie        WHERe email = $email        HAVINg rowsInLastHour > 5OR rowsInLastDay > 10OR rowsInLastMonth > 50OR rowsEver > 100    );
  • 通过
    now() - INTERVAL 1 HOUR|DAY|MONTH
    查找过去一个月|月几开始的时间,并计算在那些开始时间之后出现的那些值,对过去一个月|月中具有date_time值的所有行(用于电子邮件)进行计数。
  • 然后,如果超过了您指定的任何限制,则它
    HAVINg
    仅使用产生奇异的结果(例如
    COUNT
    ,没有关联
    GROUP BY
    子句的聚合总是导致1行)。
  • NOT EXISTS
    如果没有结果(因为未超出限制),则返回true。

编辑:根据问题的需要,更新了比较以使用单位时间戳记。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号