我在数据库中有一个表,我想获得列的最后一个值

时间:2013-09-23 11:20:34

标签: php mysql

我在表中有3列,其中有很多行。对于特定的行,我必须得到列的最后一个值。所以如何得到最后一个日期是11/10/2013。

uid       date         book_id
  1   18/8/2013          41
         to
      11/10/2013       

5 个答案:

答案 0 :(得分:1)

您想要最新的日期条目吗?将其降序排序(最新日期优先)并将结果集限制为1.

SELECT date FROM table ORDER BY date DESC LIMIT 1 ;

如果你真的意味着你在一个日期字段中有几个日期甚至文本,那么你需要将数据库模式更改为:

  

uid | startDate | endDate | BOOKID

答案 1 :(得分:1)

问题是您将日期存储为字符串,而不是日期。 11/10/2013不是有效日期,如果不使用DATE_FORMAT或其他功能,您将无法正确排序。鉴于MySQL对日期的精细原生处理,这太过分了。

此外,如果您要存储2个日期,请使用2列(例如date_startdate_end)。切勿将它们合并为1。

备份您的数据,将列的类型更改为DATE或DATETIME并使用ORDER BY date_field DESC LIMIT 1

答案 2 :(得分:0)

这应该让你去。

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

答案 3 :(得分:0)

如果您想要给定book_id的最后日期,可以编写类似

的内容
SELECT MAX(date) FROM myTable WHERE book_id = 41

答案 4 :(得分:-1)

这就是你在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];