2014-02-25 86 views
-1

我有一个包含许多字段的表格,其中一个是日期(格式为yyyy/mm/dd)。我想做一个查询,获取所有条目,然后再让它继续下去。我将尝试用示例更好地解释它。MySQL和PHP:从同一日期选择所有字段

我的查询:

SELECT 
    id, 
    date, 
    site, 
    url, 
FROM links 
WHERE online = "yes" AND 
     data  <= ?  AND 
     category != ?  AND 
ORDER BY date DESC, clicks DESC 
LIMIT 200 

数组:

Array 
(
    [0] => 2014/02/25 
    [1] => Adult 
) 

问题是,我不希望设置限制。由于限制将是来自同一日期的所有字段。

我无法设置字段date = yyyy/mm/dd,因为我使用的是具有无限滚动样式的脚本,所以我不知道它会是哪个日期。此外,我没有来自所有日子的数据,所以它会在某个时候失败。

更新2014/02/25 13点14分○○秒:

我找到了解决办法,不知道这是最好的一个,但效果非常好。

SELECT 
id, 
date, 
site, 
url 
FROM links 
WHERE publish = "yes" AND 
    date = (SELECT date FROM links WHERE date < '2014/02/25' ORDER BY date DESC LIMIT 1) 
    AND category!= 'Adult' 
ORDER BY date DESC, clicks DESC 
LIMIT 200 

因此,它是会得到仅仅从2014年2月24日的链接,如果不存在的话,那么它会从2014年2月23日获取的数据等。

+1

如果你找到你的解决方案,请**不要**编辑并把它放在你的问题。这不是一个论坛。用您的解决方案在下面创建一个答案,并最好地选择您的答案。 –

回答

0

我找到了解决办法,不知道这是最好的一个,但效果非常好。

SELECT 
id, 
date, 
site, 
url 
FROM links 
WHERE publish = "yes" AND 
    date = (SELECT date FROM links WHERE date < '2014/02/25' ORDER BY date DESC LIMIT 1) 
    AND category!= 'Adult' 
ORDER BY date DESC, clicks DESC 
LIMIT 200 

因此,它是会得到仅仅从2014年2月24日的链接,如果不存在的话,那么它会从2014年2月23日获取的数据等。

1

将检索的最后日期存储到变量中。然后将其用于下一个查询。如果查询结果为空,那么您可以在前一天再次尝试,直到获得结果。

可以更好的脚本,如果你第一次使用SELECT DISTINCT日期例如

1

是你的约会对象行中输入“日期”的表查询的“可用”日期的名单? 您应该YYYY/MM/DD转换成YYYY-MM-DD,这样你就可以在表中写。

的选择看起来是这样的:

SELECT ... 
FROM tabelle 
WHERE date BETWEEN '2007-09-20' AND '2007-09-23' 
相关问题