我编写了一个php文件来显示我的数据库中的最后一篇文章。我发现最后一篇文章,但有些最后一篇文章没有标题,我想显示最后一篇文章和技术的帖子,没有标题副本,从帖子有标题,是相同的contentid.my数据库是多大。我准备了一张图片,这是我的数据库的例子。
示例图
这是我的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();
?>有人能帮我吗?
发布于 2016-01-02 12:09:47
因此,如何只保留一个唯一的标题和第一个节点与排序。
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发布于 2016-01-02 09:40:27
我认为子查询将有助于存档您的目标。在下面的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";https://stackoverflow.com/questions/34564379
复制相似问题