如何使用php和mysql获取某个记录的最后插入日期?

时间:2017-06-05 06:03:52

标签: php mysql pdo

下面我有一个工作代码:

$p_code = "R-BIGANTE-010";
$date = date("m/d/Y");
$statement=$pdo->prepare("SELECT * FROM items WHERE p_code=? AND date=?");
$statement->execute(array($p_code, $date));

它的作用是使用p_code获取某个项目,日期等于TODAY。我想知道的是如何使用上次最新更新查询特定项目?

例如,在我的items表中,我有

enter image description here

如您所见,我有两个p_code,其值为"R-BIGANTE-010"。让我们说今天的当前日期是05/06/2017,我希望得到突出显示的日期,因为date字段比其他值更新。

我该如何查询?顺便说一句,日期值是varchar,因为代码已经过时了,我将在以后清理所有内容。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

您可以通过select query with order by and limit之类的方式获取上次更新日期:

SELECT * from tablename ORDER BY date DESC LIMIT 1

您的日期存储在varchar列中,因此请尝试STR_TO_DATE函数

SELECT * from tablename
ORDER BY STR_TO_DATE(date, '%m/%d/%Y %h:%i:%s');

答案 1 :(得分:1)

@RequestMapping(value = "/user", method = RequestMethod.GET, 
produces = "application/json; charset=utf-8")

答案 2 :(得分:1)

 Try this: 
     $p_code = "R-BIGANTE-010";
     $date = date("m/d/Y");
     $statement=$pdo->prepare("SELECT * FROM items WHERE p_code=? AND date=?");
     $statement->execute(array($p_code, $date));
     $id = $statement->lastInsertId();

If you want to do it with SQL instead of the PDO API query:

    $stmt = $pdo->query("SELECT LAST_INSERT_ID()");
    $lastId = $stmt->fetchColumn();

答案 3 :(得分:1)

如果您的日期是m / d / y格式,则必须使用STR_TO_DATE()函数将varchar日期转换为实际日期进行排序。

SELECT * from tablename 
WHERE p_code = ?
ORDER BY STR_TO_DATE(date, '%m/%d/%Y') DESC 
LIMIT 1

您应该将DATE数据类型用于日期,而不是VARCHAR。