0

我有一张看起来像这样的桌子

编号 | 项目ID | 猫ID | 标题
-------------------------------------------------- --------------------------
0 3 4 你好
1 3 6 你好
2 4 4 哟
3 4 8 哟
4 5 2 嗨
5 1 3 什么

我想做一个 MySQL PHP Select,它只出现一次 itemID。如您所见,它们是相同的项目,只是属于不同的类别。

这是我尝试过的

SELECT * FROM Table GROUP BY itemID

这似乎不起作用,它仍然只是显示重复。

4

3 回答 3

2

这是你想要的? http://www.sqlfiddle.com/#!2/5ba87/1

select itemID, Title from test group by itemID;
于 2013-02-25T20:02:55.737 回答
0

如果您想要不同 itemID 的所有内容,您当然可以通过对所有不同 itemID 进行一次选择,然后根据第一个查询的结果进行一系列选择来走很长的路。

select distinct(`itemID`) from Table

然后在您的 PHP 代码中,执行以下操作:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    $itemID = $row['itemID'];

    $sql2 ="SELECT * FROM Table WHERE 1 and `itemID`=\"$itemID\" limit 1";
    $result2 = @mysql_query($sql2, $connection);
    while ($row2 = mysql_fetch_array($result2))     
        {
            $id = $row2['id'];
            $itemID = $row2['itemID'];
            $catID = $row2['catID'];
            $Title = $row2['Title'];
        }
    }
于 2013-02-25T20:05:03.297 回答
0

就 MySQL 而言,数据都是唯一的,因为您需要所有列。你必须更具体。

您只想要 itemID(或其他列)吗?然后这样说:

select [column] from Table GROUP BY itemID

您想要特定项目 ID 的最后一个条目吗?然后说:

select * from Table where itemID = 1 ORDER BY id DESC

还是第一个?

select * from Table where itemID = 1 ORDER BY id

如果这些都不是您想要的,那么您可能需要重组您的表。看起来您想要为您的项目提供不同的类别。如果是这样,那么您将希望将它们拆分到一个新的连接表中,因为您在项目和类别之间具有多对多的关系。我建议阅读数据库规范化,这样您就不会复制数据(例如您使用标题)。

于 2013-02-25T19:56:30.757 回答