我正在创建一个简单的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";


尝试这段代码,让我知道它是否仍然无法正常工作

09-25 11:48