根据字段值排序数据

时间:2014-03-31 19:51:44

标签: php mysql sql

我在订购数据时遇到问题。我正在使用一个简单的查询来尝试订购一个表,但它似乎并没有起作用。一旦订购了表,我想更新第一列,以便我使用以下内容:

$qry9 = "SELECT * FROM t1 ORDER BY Ranking DESC";
$qry10 = "UPDATE t1 SET Level = '1' LIMIT $number";

由于某种原因,这不起作用。数据仍按照最初在表中输入的方式排序,因此在执行更新时,表的第一行将更新,而不是排名最高的行。这里的任何帮助将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

order by适用于查询的结果集,而不适用于表本身。在MySQL中,您可以使用带有更新的order by

UPDATE t1
    SET Level = '1' 
    ORDER BY ranking DESC
    LIMIT $number;

答案 1 :(得分:2)

$ qry9(SELECT * FROM t1 ORDER BY Ranking DESC";)不对表中的任何进行排序,它只是对select的结果集进行排序。因此,如果您只想在第一行应用$qry10,则还需要在ORDER BY Ranking DESC使用{<1}}:

$qry10 = "UPDATE t1 SET Level = '1' ORDER BY Ranking DESC LIMIT $number";