【发布时间】:2010-07-01 03:02:49
【问题描述】:
我想知道如何根据某些条件从表中获取最后两个 id
例如,如果今天是 7 月 1 日,我想获取今天的记录 ID,然后获取之前记录的 ID。
请注意,上一条记录的 id 可能不同,因为这是按日期排序的,因此 previous_id = current_id - 1 不起作用。
感谢您的宝贵时间
苏尼尔
【问题讨论】:
-
不太清楚条件是什么......
我想知道如何根据某些条件从表中获取最后两个 id
例如,如果今天是 7 月 1 日,我想获取今天的记录 ID,然后获取之前记录的 ID。
请注意,上一条记录的 id 可能不同,因为这是按日期排序的,因此 previous_id = current_id - 1 不起作用。
感谢您的宝贵时间
苏尼尔
【问题讨论】:
SELECT id, date FROM dates ORDER BY date DESC LIMIT 2;
如果您想忽略今天之后的日期,可以添加AND date <= now()。
【讨论】:
我的 mysql 数据库已关闭,而且我整天都在使用 oracle 和 java,但试一试。
$date='07/01/2010'; $date1=strtotime($date);
$date1_id=mysql_query('SELECT max(id) FROM dates WHERE date='.$date1); $date2_id=mysql_query('SELECT max(id) FROM (select id from dates where date='.$date1.' and id !='.$date1_id.')');
我希望两个查询都可以,而且我认为mysql支持from子句中的子查询,不记得了。
【讨论】:
假设您的日期作为 Unix 时间戳存储在数据库中:
$date='07/01/2010';
$date1=strtotime($date);
$date1=strtotime($date.'-1 day');
$date1_id=mysql_query('SELECT id FROM dates WHERE date='.$date1);
$date2_id=mysql_query('SELECT id FROM dates WHERE date='.$date2);
【讨论】: