Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL(如果更新时间超过5分钟)和其他一些where子句_Mysql - Fatal编程技术网

MySQL(如果更新时间超过5分钟)和其他一些where子句

MySQL(如果更新时间超过5分钟)和其他一些where子句,mysql,Mysql,我有一个很大的数据库表,其中有几项每秒钟更新一次 我想显示每一个项目,有超过90%的百分比后5分钟在现场,而不是直接 这是当前的查询,它可以工作,但对于旧价格与新价格的90%以上的项目,不会延迟5分钟 SELECT name, price, pricebefore, link, imagelink, updated, site, siteid FROM items WHERE (case when pricebefore3 is NULL then pricebefore else pric

我有一个很大的数据库表,其中有几项每秒钟更新一次

我想显示每一个项目,有超过90%的百分比后5分钟在现场,而不是直接

这是当前的查询,它可以工作,但对于旧价格与新价格的90%以上的项目,不会延迟5分钟

SELECT name, price, pricebefore, link, imagelink, updated, site, siteid 
FROM items 
WHERE (case when pricebefore3 is NULL then pricebefore else pricebefore3*1.5 end) >= pricebefore 
AND price < pricebefore 
AND isbn != -1 
AND (100-(price/pricebefore)*100) > ".$percentage." 
AND link LIKE '%".$merchant."%' 
ORDER BY updated DESC 
LIMIT ".$perPage." 
OFFSET ".$site;
有人能帮我吗

我需要像这样的查询,但每一个项目超过90%的价格比以前的价格比我需要5分钟的延迟

Updated是一个时间戳,带有更新时的当前\u时间戳和标准当前\u时间戳

我只需要查询,以获得超过90%的价格,以pricebefore项目必须是5分钟前更新


是的,但查询在引号中,如您所见:表的DDL、一些数据示例、示例条件插入到查询中的变量值以及该数据和条件的期望结果。一个大的数据库表,几乎没有每秒钟更新一次的项,这意味着:有许多记录,大部分记录根本没有更改,只更新了几条记录,没有插入新记录。如果每秒钟更新一条记录,那么过去5分钟内所有以前的价格都必须从何处获取?如果价格历史记录是:现在100%,5分钟前99%,但3分钟前80%——那么必须选择这样的记录吗?有很多项目是的,但这里并不感兴趣?我只需要查询,以获得超过90%的价格,以pricebefore项目必须是5分钟旧的更新不是每个项目得到更新的所有时间。只有在市场价格发生变化的情况下。因此,如果价格发生变化,它将持续数小时。谢谢!但我有一个问题,即90%以下的每一项都有5分钟的间隔。只有当它超过90%时,它必须超过5分钟,而不是所有的时间:/这就是我的问题所在:D所以对于这个查询,所有的时间都是5分钟old@txn这就是为什么我要求你们在你们的问题中插入源数据结构和完整的数据示例。什么?正如我所说的,只有在90%以上的情况下,90%的项目必须有5分钟的延迟,而不是所有项目。对不起,如果你理解错了。所有低于90%的事物都没有间隔延迟,因此如果90%或以上,则必须与5分钟的间隔相结合,而不是其工作时间。但是90%以下的人不需要5分钟的休息时间
SELECT *
FROM sourcetable
WHERE price/pricebefore <= (90 / 100)
  AND updatedAt >= NOW() - INTERVAL 5 MINUTE
-- AND another conditions if needed
-- ORDER BY, LIMIT, etc.