php - 使用 mySQL 和 PHP 从数据库按升序获取最后 3 条记录

标签 php mysql

我正在创建一个简单的 php 文件来读取添加到 phpMyAdmin 数据库中的最后 3 条记录。我面临的问题是我想要最后 3 个添加的记录按升序排列,而我只能按降序排列它们。我尝试了以下代码,它对其他一些人有用,但在 phpMyAdmin 中对我不起作用。

SELECT * FROM (
    SELECT * FROM studio ORDER BY studioId DESC LIMIT 3
)
ORDER BY studioId;

这就是我将代码实现到 php 文件中的方法。

$sql = "SELECT * FROM (SELECT * FROM studio ORDER BY studioId DESC LIMIT 3) ORDER BY studioId";
$query = mysqli_query($conn, $sql);
if (mysqli_num_rows($query) > 0) {
    while($row = mysqli_fetch_assoc($query)) {
        echo $row["studioName"]." ".$row["studioAddress"]." ".$row["studioPCode"]." ".$row["studioTelNo"]."<br/>";
    }
} else {
    echo "There Are No Studios Added";
}

出于某种原因,上述代码仅在我用此行替换上述代码的第一行时才有效。

$sql = "SELECT * FROM studio ORDER BY studioId DESC LIMIT 3";

这是我用来创建表工作室的代码。

CREATE TABLE Studio (     
    studioId INT(5) NOT NULL,      
    studioName VARCHAR(50) NOT NULL,      
    studioAddress VARCHAR(50) NOT NULL,      
    studioPCode VARCHAR(7) NOT NULL,      
    CONSTRAINT
        ck_studioPCode CHECK(studioPCode LIKE '___ ___'),      
        studioTelNo VARCHAR(11) NOT NULL,      
        CONSTRAINT ck_studioTelNo CHECK(LEN(studioTelNo) = 11),      
    PRIMARY KEY(studioId),      
    UNIQUE(studioName)      
);

最佳答案

使用别名,这可能有效

$sql = "SELECT * FROM (SELECT * FROM studio ORDER BY studioId DESC LIMIT 3) AS stdId ORDER BY studioId";

尝试此代码,如果仍然无法正常工作请告诉我

关于php - 使用 mySQL 和 PHP 从数据库按升序获取最后 3 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40858333/

相关文章:

php - 上传后获取文件大小并将其插入表中的代码不起作用

mysql - 对MySQL结果进行排序,使两列中任意一列具有特定值的结果最后显示

php - 使用 PDO bindParam 创建数据库

php - python的parse_str?

使用 AIML 引擎和 Mysql 数据库作为后端的 PHP Twitter 机器人

PHP,将未知数量的列放入数组中

php - 获取元素外部的文本

php - WordPress 博客文章重定向(1000 篇文章)

mysql - iOS 5 : How can I preserve newline while retrieving values from mysql via PHP in UITextView and UIWebView

android - 如何让SQL安全插入?