gpt4 book ai didi

MySQL只查找24小时内没有外键的

转载 作者:行者123 更新时间:2023-11-29 13:28:28 26 4
gpt4 key购买 nike

假设今天是 2013 年 11 月 16 日

并且,假设我有一个像这样的日期表

------------------------
id | foreign_id | date
------------------------
1 | 1 | 2013-11-01 05:42:38
2 | 2 | 2013-11-04 04:21:22
3 | 2 | 2013-11-16 15:11:55

我想选择那些过去 24 小时没有记录的条目。

ie:id #3 是今天的 15:11,所以我不想选择 2 的 foreign_id

我尝试在其 find api 条件中使用 CakePHP 2.x

'HOUR(TIMEDIFF(NOW(), Traffic.accessed)) > 24'

其中“流量”是某个表,访问的是某个日期字段。不幸的是,这仍然选择该记录,因为它发现之前的条目的日期早于 24 小时。

请帮忙。

更新

我的实际查询是这样的

SELECT Traffic.accessed, Traffic.access_ip, Traffic.client_order_id 
FROM `mdb`.`client_orders` AS `ClientOrder`
LEFT JOIN `geclicks`.`traffics`
AS `Traffic` ON (`Traffic`.`client_order_id` = `ClientOrder`.`id`)
WHERE `ClientOrder`.`status` = 'ACTIVE' AND `ClientOrder`.`offer_clicks` = 0
AND NOT (`ClientOrder`.`offer_id` = 0) AND ((`Traffic`.`access_ip` IS NULL)
OR (((`Traffic`.`access_ip` <> "444")
OR (((HOUR(TIMEDIFF(NOW(), MAX(`Traffic`.`accessed`))) > 24)
AND (`Traffic`.`access_ip` = "444"))))))
GROUP BY `Traffic`.`client_order_id` ORDER BY RAND() ASC

最佳答案

选择所有内容:

SELECT * FROM Records  

现在让我们过滤掉坏的外键(例如 1、2 和 3):

SELECT * FROM Records WHERE foreign_id NOT IN (1, 2, 3)  

先把这个放在一边...我们如何找到 24 小时内有条目的 foreign_id:

SELECT DISTINCT foreign_id FROM Records WHERE TIMEDIFF(CURRENT_TIMESTAMP(), date) <= 24

将其插回原始版本,而不是 (1, 2, 3) 示例:

SELECT * FROM Records WHERE foreign_id NOT IN (SELECT DISTINCT foreign_id FROM Records WHERE TIMEDIFF(CURRENT_TIMESTAMP(), date) <= 24)  

关于MySQL只查找24小时内没有外键的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19814029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com