这是表历史记录:
URL | UID | Method | Tag | Date
这个查询:
$data = mysql_query("
select * from History
order by `Date` asc
");
我需要获取日期比记录更早的网址。
我只有此记录的网址。 ($ URL)
是否有办法找到它并按日期选择按顺序排列的行?
我可以使用$url
运行单独的查询来获取日期,但我想知道是否可以使用一个查询来执行此操作。
答案 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