我写了一个php文件来显示数据库中的最后一篇文章。我找到了最后一篇文章,但有些最后一篇没有标题我想显示最后一篇文章和没有标题的技术文章,从有标题和相同内容的文章中复制。我的数据库是larg。我准备了一张图片,这是我的数据库的例子
示例图片
这是我的php
代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "vbtest";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT title , nodeid FROM node where contenttypeid='30' order by nodeid desc limit 10";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "title: " . $row["nodeid"]. " title: " . $row["title"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
有人能帮我吗?
那么,如何只保留一个唯一的标题和第一个带有sort.的nodeid
SELECT * FROM
(SELECT T.title,
MIN(nodeid) AS nodeid
FROM
(SELECT
(SELECT N2.title FROM node AS N2
WHERE N2.contentid = N.contentid
AND N2.starter = N.starter
ORDER BY N2.nodeid ASC
LIMIT 1) AS title,
nodeid
FROM node AS N
WHERE contentid='30'
ORDER BY nodeid DESC LIMIT 10) AS T
GROUP BY title
) AS T2
ORDER BY nodeid DESC
我认为子查询将有助于归档您的目标。在下面的SQL查询中,子查询将从外部查询中找到contentid的第一个标题。
$sql = "
SELECT
(SELECT N2.title FROM node AS N2
WHERE N2.contentid = N.contentid
AND N2.starter = N.starter
ORDER BY N2.nodeid ASC
LIMIT 1) AS title,
N.nodeid
FROM node AS N
WHERE contentid='30'
ORDER BY nodeid DESC LIMIT 10";