[英]SQL Select latest row where value matches
我正在尝试从数据库中返回具有最高UID的行,其中URL列与http://urltocheck.com匹配。
我已经尝试了所有可以想到的方法,这是我能得到的最接近的方法,但是我遇到了SQL语法错误。
我的表称为Adam,并且具有以下列... UID(唯一),URL(加上更多负载)。 我正在尝试通过PHP访问MySQL数据库。
$query = "SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
ORDER BY `UID` ASC;
LIMIT 1;";
有人可以帮忙吗?
您应该使用订单DESC并删除“;” 在ASC之后
$query = "SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
ORDER BY `UID` DESC
LIMIT 1";
尝试这样。 另外,删除;
在这行ORDER BY UID ASC;
(之前没有注意到),因此没有limit 1
。
SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
and `UID` = (select max(`uid`) from `Adam`)
UID最高
您应该按UID desc排序,并且限制为1。
您也可以按最大ID订购。
<?php
$query = "SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
ORDER BY MAX(`UID`) DESC;";
这执行得更快。
$query = "SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
ORDER BY MAX(`UID`);";
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.