ホームページ >バックエンド開発 >PHPチュートリアル >ヘルプ: mysql は指定された ID 順序に基づいてどのように結果を見つけますか?

ヘルプ: mysql は指定された ID 順序に基づいてどのように結果を見つけますか?

WBOY
WBOYオリジナル
2016-10-10 11:56:231166ブラウズ

親愛なるマスターの皆さん、今私は問題に遭遇したので、あなたの助けが必要です。

投稿テーブル:記事テーブルの2つのテーブルがあります。
レコードテーブル: ユーザーの読書順序を記録するために使用されるレコードテーブル。

レコードテーブルはフィールドpostidを使用して、ユーザーが記事を読んだ順序に従って投稿テーブルの主キーIDを記録します。つまり、record.postidの外部キーはpost.idです。

ここで、レコードテーブルの postid に基づいて post テーブル内の記事を検索する必要があります。 (読む順序は「第 1 条、第 2 条、第 2 条、第 3 条、第 3 条」で繰り返し記事を許可するとします。)

私は
から始めました。 リーリー

検索結果では、postid1、postid2、postid3 の記事のみが見つかります。

現在必要なビジネス ロジックは次のとおりです:

1: ユーザーの読書記録に基づいて、投稿テーブル内の記事を検索します。
2: 重複は許可されます。

例えば、ユーザーが読んだ記事の閲覧順が「記事1、記事2、記事2、記事3、記事3」だった場合、postテーブルの検索結果は、post.id1、postとなります。 .id2、post.id2、post.id2、post.id3。

注: FOR ループの使用を検討してください

リーリー

でも効率が心配です。

返信内容:

親愛なるマスターの皆さん、今私は問題に遭遇したので、あなたの助けが必要です。

投稿テーブル:記事テーブルの2つのテーブルがあります。

レコードテーブル: ユーザーの読書順序を記録するために使用されるレコードテーブル。

レコードテーブルはフィールドpostidを使用して、ユーザーが記事を読んだ順序に従って投稿テーブルの主キーIDを記録します。つまり、record.postidの外部キーはpost.idです。

ここで、レコードテーブルの postid に基づいて post テーブル内の記事を検索する必要があります。 (読む順序は「第 1 条、第 2 条、第 2 条、第 3 条、第 3 条」で繰り返し記事を許可するとします。)

私は

から始めました。 リーリー
検索結果では、postid1、postid2、postid3 の記事のみが見つかります。

現在必要なビジネス ロジックは次のとおりです:

1: ユーザーの読書記録に基づいて、投稿テーブル内の記事を検索します。

2: 重複は許可されます。

例えば、ユーザーが読んだ記事の閲覧順が「記事1、記事2、記事2、記事3、記事3」だった場合、postテーブルの検索結果は、post.id1、postとなります。 .id2、post.id2、post.id2、post.id3。

注: FOR ループの使用を検討してください

リーリー

でも効率が心配です。

投稿 P から P.*

を選択

LEFT JOIN Record R ON R.PostID = P.ID
R.ID ASC で注文

Recordテーブルは読み取り順序を記録するため、Recordテーブルの順序に従ってソートする必要があります

これはアイデアを提供します。in を使用してデータベースからデータを取得し、map を使用して対応する関係を確立します。map.put(postid, post)。あとはID順に取り出して必要なデータ型を組み立てます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。