繁体   English   中英

SQL选择值匹配的最新行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM