フェイスブックを考えてみましょう。Facebook は、任意のステータスの最新の 2 つのコメントを表示します。私は似たようなことをしたいです。
、、、などのテーブルがstatus_id
あります。次に、それぞれの最新の 2 つのコメントを取得します。comment_id
comment
timestamp
status_id
現在、最初GROUP_CONCAT
にすべての列をグループ化しstatus_id
、次にSUBSTRING_INDEX
withを実行してい-2
ます。
これにより、最新の 2 つのコメントが取得されますGROUP_CONCAT
が、status_id のすべてのレコードがオーバーヘッドになります。
SELECT SUBSTRING_INDEX(GROUP_CONCAT('~', comment_id,
'~', comment,
'~', timestamp)
SEPARATOR '|~|'),
'|~|', -2)
FROM commenttable
GROUP BY status_id;
より良いアプローチを手伝ってもらえますか?
私のテーブルは次のようになります -
status_id comment_id コメントのタイムスタンプ
1 1 xyz1 3 hour
1 2 xyz2 2 hour
1 3 xyz3 1 hour
2 4 xyz4 2 hour
2 6 xyz6 1 hour
3 5 xyz5 1 hour
だから私は出力が欲しい -
1 2 xyz2 2 hour
1 3 xyz3 1 hour
2 4 xyz4 2 hour
2 6 xyz6 1 hour
3 5 xyz5 1 hour