簡體   English   中英

只根據id在mysql php中獲得一個表行

[英]Only get one occurance of a table row in mysql php based on id

我有一張看起來像這樣的桌子

id            |            itemID        |         catID     |      Title
----------------------------------------------------------------------------
0                           3                       4                Hello
1                           3                       6                Hello
2                           4                       4                Yo
3                           4                       8                Yo
4                           5                       2                Hi
5                           1                       3                What

我想做一個MySQL PHP選擇只獲得一次itemID。 正如您所看到的,它們是相同的項目,只是在不同的類別中。

這是我試過的

SELECT * FROM Table GROUP BY itemID

這似乎不起作用,它仍然只是顯示重復。

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

select itemID, Title from test group by itemID;

就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

如果這些都不是您想要的,那么您可能需要重新構建表格。 看起來您需要不同類別的商品。 如果是這樣,那么您將要將它們拆分為新的連接表,因為項目和類別之間存在多對多關系。 我建議閱讀數據庫規范化,這樣你就不會復制數據(例如你使用的是標題)。

如果你想要不同的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'];
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM