SQL选择值匹配的最新行

时间:2014-07-12 19:00:08

标签: php mysql sql

我正在尝试从数据库返回行,其中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;";

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

您应该使用订单DESC并删除";"在ASC之后

$query = "SELECT * FROM `Adam`
WHERE URL='http://urltocheck.com'
ORDER BY `UID` DESC
LIMIT 1";

答案 1 :(得分:1)

试试这样。另外,请删除此行;上的ORDER BY UID ASC;(之前没有注意到),因为limit 1没有想到这一点。

SELECT * FROM `Adam`
    WHERE URL='http://urltocheck.com'
    and `UID` = (select max(`uid`) from `Adam`)

答案 2 :(得分:0)

  

具有最高UID

您应该按照UID desc 订购并限制为1。

答案 3 :(得分:0)

您也可以通过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`);";

?>