-2

こんにちは、一致する mysql 結果のセットを 1 回だけ表示する方法を探しています。誰かがこれを行う方法を教えてもらえますか?

これが私が達成しようとしているものの例です:

id  |  profile_id  | viewed_profile_id | date_viewed
1          4                7              00:00:00
2          5                6              00:00:00
1          4                7              00:00:00

profile_idとviewed_profile_idが一致する場合、データベースに2回または3回、または何回も表示されるのではなく、一致する列の結果を1つだけ表示するには?

4

4 に答える 4

4

DISTINCT次のキーワードを使用します。

SELECT DISTINCT id, profile_id, viewed_profile_id, date_viewed
FROM myTable

これにより、選択した列の一意の組み合わせごとに 1 つの行のみが表示されます。


または、質問をよく読んで(profile_idとのみを一致させたいためviewed_profile_id)、視聴者ごとに最後に閲覧した日付を表示したい場合は、閲覧しGROUP BYた日付を使用して選択できますMAX。また、date_viewed にデータがあり、並べ替え可能であると想定しています。

SELECT profile_id, viewed_profile_id, MAX(date_viewed)
FROM myTable
GROUP BY profile_id, viewed_profile_id
于 2013-03-11T11:34:34.557 に答える
0

DISTINCTは、重複を排除するのに役立ちます。クエリが重複行を含む結果を返す場合、重複を削除して、すべての行が一意である結果セットを生成できます。これを行うには、SELECTの後、出力列リストの前にキーワードDISTINCTを含めます。

http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html

于 2013-03-11T11:37:01.813 に答える
0
SELECT DISTINCT(` profile_id`),`viewed_profile_id`,`id`,`date_viewed` FROM `tableName` GROUP BY `viewed_profile_id`
于 2013-03-11T11:51:48.603 に答える
-1

これを試して:

$query = "SELECT * FROM TABLENAME WHERE profile_id = '$PROFILEIDVALUE' AND viewed_profile_id = '$VIEWEDIDVALUE' LIMIT 0, 1"

使用するORDERに応じて、ORDER BY id DESC/ASCを使用できます。

これがお役に立てば幸いです

于 2013-03-11T11:36:10.647 に答える