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.

您也可以ORDER BY MAX 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`);";
?>