-1

これからの回答を使用して、ユーザー名のリストを抽出しました:

クエリに OR 演算子が多すぎる場合、mysql クエリを最適化する方法は?

今、私は別の問題を抱えています。リクエスターとバディの両方が複合主キーを形成する、2つの列だけで構成されるフレンドテーブルがあります。

上記のSOの質問を使用して、特定のユーザーのFacebookの友達の配列があるとします。

Web アプリでも自動的に友達にするにはどうすればよいですか?

つまり、「usera」というユーザーに 5 人の実際の友達がいるとします。10 個の挿入ステートメントを実行する必要があります。

例: friendA, usera と usera, friendA のように、friendA が usera の友達として反映されるようにします。

挿入選択が効率的であることを理解しています。残念ながら、これらの友人のユーザー名のリストは、上記の質問で仲間の SO メンバーによって提案されているように、IN 句を使用して値の PHP 配列を介して取得されます。

それで、私は何をすべきですか?

するべきか

a) 名前をループして、ステップごとに 2 つの挿入ステートメントを実行しますか?

b) 挿入選択を使用しますか? しかし、それを正確に行う方法は?

私のDBはこのように設計されています:

ユーザー名と fb_uid を持つユーザーと呼ばれる 1 つのテーブル。ここで、ユーザー名は主キーであり、fb_uid は null 可能です。

リクエスターと呼ばれる列とバディと呼ばれる別の列を持つ友人と呼ばれる1つのテーブル。両方の列が複合キーを形成します。

友達テーブルに (usera, userb) と (userb, usera) のデータがある場合、私の Web アプリで 2 人のユーザー (usera, userb) の間に友情が確立されます。

ありがとうございました。

4

2 に答える 2

1

いつでも一括挿入できます。

INSERT INTO friends (user_id, friend_user_id) VALUES (1, 2), (2, 1)
于 2009-08-14T13:47:40.370 に答える
0

INSERT SELECT を使用します。詳細な構文はこちらで確認できます。

于 2009-08-14T13:49:00.977 に答える