如何在MySQL查询中反转排序顺序?

时间:2013-09-23 20:34:45

标签: php mysql sql sql-order-by

我有这个问题:

    $query = $dbh->prepare("SELECT * FROM `mylogs` WHERE `username` LIKE :username LIMIT 0 , :limit");
    $query->bindParam(':username', $username, PDO::PARAM_STR);
    $query->bindParam(':limit', $limit, PDO::PARAM_INT);
    $query->execute();

然后我使用while循环以表格格式打印出数据库。

很好,这是什么问题?

我的问题是我想彻底撤消返回的订单。

我尝试了ORDER BY,但由于我有一个WHERE,我不确切知道在哪里插入它。

任何帮助都将受到极大的赞赏。

1 个答案:

答案 0 :(得分:6)

要撤消ORDER BY子句,请将DESC附加到其中。像这样:

$query = $dbh->prepare(sprintf('SELECT * FROM `mylogs`
                                WHERE `username`
                                LIKE ?
                                ORDER BY `username`
                                LIMIT %d', intval($limit)));
$query->execute(array($username));

此外, PDO LIMIT X, Y的限制不能是占位符。请改用sprintf(),这样就可以保证数字为整数。

添加:除非您确实需要通配符搜索,否则请勿使用LIKE关键字。