根据日期选择结果,但知道ID

时间:2011-10-04 04:42:53

标签: mysql

这是表历史记录:

URL | UID | Method | Tag | Date

这个查询:

$data = mysql_query("
        select * from History 
        order by `Date` asc         
        "); 

我需要获取日期比记录更早的网址。

我只有此记录的网址。 ($ URL)

是否有办法找到它并按日期选择按顺序排列的行?

我可以使用$url运行单独的查询来获取日期,但我想知道是否可以使用一个查询来执行此操作。

2 个答案:

答案 0 :(得分:3)

您可以使用子选择:

SELECT *
FROM History
WHERE Date < (SELECT Date FROM History WHERE url = 'foo')
ORDER BY Date ASC 

为url添加唯一的index,以确保子查询只返回一条记录。

答案 1 :(得分:0)

这是一个更好的表现然后再选择:

SELECT
  h1.*
FROM
  history h1
INNER JOIN 
  history h2 
ON
  h2.url = '{URL}'
WHERE
  DATEDIFF(h1.`date`,h2.`date`) < 0