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