0

私はこのようなテーブルを持っています

id | itemID | catID | タイトル
-------------------------------------------------- --------------------------
034こんにちは
136こんにちは
244年
348年
452こんにちは
513何

itemIDを1回だけ取得するMySQLPHPSelectを実行したいと思います。ご覧のとおり、これらは同じアイテムであり、カテゴリが異なります。

これは私が試したものです

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

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 に答える
0

個別のitemIDのすべてが必要な場合は、個別のitemIDをすべて1回選択してから、最初のクエリの結果に基づいて一連の選択を行うことで、長い道のりをたどることができます。

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 に答える