下面我有一个工作代码:
$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
表中,我有
如您所见,我有两个p_code
,其值为"R-BIGANTE-010"
。让我们说今天的当前日期是05/06/2017
,我希望得到突出显示的日期,因为date
字段比其他值更新。
我该如何查询?顺便说一句,日期值是varchar
,因为代码已经过时了,我将在以后清理所有内容。
非常感谢任何帮助。
答案 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。