ホームページ > バックエンド開発 > PHPチュートリアル > データベースフィールドのマッチングの問題

データベースフィールドのマッチングの問題

WBOY
リリース: 2023-03-02 12:36:01
オリジナル
1599 人が閲覧しました

これで 2 つのテーブル (mysql) があります
テーブル 1 のフィールドは次のとおりです: 都道府県、都市、携帯電話番号、名前、その他のフィールド
テーブル 2 のフィールドは次のとおりです: 都道府県、市、携帯電話番号、その他フィールド

表 1 と表 2 のデータベースは両方とも大規模で、毎日数百万行の新しいデータが追加されます。
これで、テーブル 1 とテーブル 2 の両方がテーブルに分割されました。
要件は、2 つのテーブルの携帯電話番号に基づいて 2 つのテーブルのデータを照合することです。
質問は:
1. 一致したデータを 3 番目のテーブルに保存する方法、またはテーブル 2 の一致する行の ID を保持するフィールドをテーブル 1 に追加する方法です。
2. 一致しないレコードをクエリする方法。

返信内容:

これで 2 つのテーブル (mysql) があります
テーブル 1 のフィールドは次のとおりです: 都道府県、都市、携帯電話番号、名前、その他のフィールド
テーブル 2 のフィールドは次のとおりです: 都道府県、市、携帯電話番号、その他フィールド

表 1 と表 2 のデータベースは両方とも大規模で、毎日数百万行の新しいデータが追加されます。
これで、テーブル 1 とテーブル 2 の両方がテーブルに分割されました。
要件は、2 つのテーブルの携帯電話番号に基づいて 2 つのテーブルのデータを照合することです。
質問は:
1. 一致したデータを 3 番目のテーブルに保存する方法、またはテーブル 2 の一致する行の ID を保持するフィールドをテーブル 1 に追加する方法です。
2. 一致しないレコードをクエリする方法。

リーリー

http://dev.mysql.com/doc/refm...

一致しないレコードの場合、1 つのテーブルを左側のテーブルとして使用して別のテーブルに関連付け、右側のテーブルに null があるかどうかを判断します
たとえば

リーリー

結果は、tb2 には表示されない tb1 のすべてのレコードです

しかし、tb2 には別の状況があり、tb1 に存在しないレコードが tb2 にある場合、tb1 の不一致レコードは見つかりません。
実際、2 つのテーブルがすべて一致するかどうかを確認したい場合は、次のようにすることができます。 full joinを使用して一致させますが、データ量から判断して、完全結合は使用しないことをお勧めします。

使用する場合でも、すべてをチェックしないでください。

結合の使用方法については、この画像を参照してください

データベースフィールドのマッチングの問題

テーブルの最適化
1. 携帯電話番号フィールドにインデックスを作成します

2. 携帯電話番号の最初の数桁に従ってテーブルを分割することをお勧めします。

保管について

テーブル 1 とテーブル 2 にフィールドを追加して、別のテーブルに行を保存することをお勧めします。次回の更新処理で値のあるフィールドの処理をスキップできます。

一致しないフィールドは空です。

また

テーブル 1 にデータを追加するときに、更新をレコードに直接配置し、テーブル 2 に存在するかどうかを確認することをお勧めします。

クエリを実行できます
select * from t1,t2 where t1.mobile = t2.mobile
クエリを実行した後、新しいものを作成できます

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート