如何反转 MySQL 查询中的排序顺序


How do you reverse the sorting order in a MySQL query?

我有这个查询:

    $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 循环以表格格式打印出数据库。

太好了,有什么问题吗?

好吧,我的问题是我想完全颠倒返回的顺序。

尝试了订购方式,但由于我有一个 WHERE 我不知道确切地插入它的位置。

任何帮助将不胜感激。

要反转ORDER BY子句,请向其追加DESC。喜欢这个:

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

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

补充:不要使用 LIKE 关键字,除非确实需要通配符搜索。