我在一个有很多行的表中有 3 列。 对于特定行,我必须获取该列的最后 value.so 如何获取最后日期是 11/10/2013。
uid date book_id
1 18/8/2013 41
to
11/10/2013
问题是您将日期存储为字符串,而不是日期。 11/10/2013
不是有效的日期,如果不使用DATE_FORMAT或其他功能,您将永远无法正确排序。考虑到MySQL对日期的精细本机处理,这是矫枉过正的。
此外,如果您要存储 2 个日期,请使用 2 列(例如 date_start
和 date_end
)。切勿将它们合并为 1。
备份数据,将列的类型更改为 DATE 或 DATETIME,然后使用 ORDER BY date_field DESC LIMIT 1
。
您想要最新的日期条目吗?按降序排序(最新日期优先)并将结果集限制为 1。
SELECT date FROM table ORDER BY date DESC LIMIT 1 ;
如果您真的意味着在一个日期字段中有多个日期,甚至还有文本,那么您需要将数据库架构更改为以下内容:
uid | 开始日期 | 结束日期 | bookID
如果你想要给定book_id的最后日期,你可以写一些类似的东西
SELECT MAX(date) FROM myTable WHERE book_id = 41
这应该让你开始。
SELECT * FROM table_name ORDER BY STR_TO_DATE(date,'%e/%c/%Y') DESC LIMIT 1;
-- ^- the most recent date is first
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date
这就是你在php中使用mysql执行此操作的方式
$Query = mysql_query(SELECT date FROM table_name ORDER BY date DESC LIMIT 1);
$Date = mysql_result($Query,0,'date');
$Date = explode('to',$Date);
$Last_Date = $Date[1];