ホームページ >バックエンド開発 >PHPチュートリアル >SQLの同じデータのマージの問題

SQLの同じデータのマージの問題

WBOY
WBOYオリジナル
2016-06-23 14:08:451177ブラウズ

A リストができました。次のようになります。最初にリストをスキップして、次の文で必要なものを確認できます。
名前カート
黄欣 悪者とクラスメート
陸秀秀 クラスメイト
劉毅 友人とクラスメート

私今すぐ新しいBリストを作成したいです テーブルAのカートは別に保存されています テーブルBは次のようになります
ID
1



ディスカッションに返信(解決策)

2つの関係がわかりません投稿者が言及したテーブルですが、投稿者の意図がわかりません

この問題に直接対処するには、スクリプトを使用することをお勧めします。基本的に SQL では解決できません (実際、SQL では推奨されていません)。このように)

プログラムは、関連する処理ロジックを定期的に実行し、最新のデータをテーブル B に挿入します。重複排除操作については、スクリプト ロジックの処理が簡単なので、これ以上は説明しません


テストに挿入(カート名)カートごとにユーザー情報グループからカートを選択します

上記と同様に、長い間取り組んできましたが、アンパサンドの重複排除にはまだ問題があります
実際、それはカテゴリの重複を排除することです。テーブル A の label フィールドを作成し、新しいテーブルに移動します

A テーブルから substring_index(cart ,'&',1) を選択します
Union
select substring_index(substring_index(cart,'&',2),'&',- 1) from A table

Union

select substring_index(substring_index(cart,'&' ,3),'&',-1) from table A

赤いパターンを数回繰り返します


INSERT INTO table_b(cartname)
(
SELECT DISTINCT (cart) FROM table_a

)


&記号で区切られた部分も同様です 重複を削除する必要がある場合は、PHPスクリプトを使用した方が効率的かもしれません

select substring_index(cart,'&',1 ) テーブル A から

Union

select substring_index(substring_index(cart,'&',2),'& ',-1) from A table

Union

select substring_index(substring_index(cart,'&',3),'& ',-1) from A table

赤いパターンを数回繰り返します

はい、モデレーターです 教えていただいたコードを無事使用しましたが、一度しか実行しなかったので問題ないようです ありがとうございます。モデレーター

$intosql="insert into 表B(cart)select substring_index(cartname,'&',1) from 表Aunionselect substring_index(substring_index(cartname,'&',2),'&',-1) from 表Aunionselect substring_index(substring_index(cartname,'&',3),'&',-1) from 表A";mysql_query($intosql);


現在のカートには '&' が 1 つしかありませんが、将来的には複数の結合が存在する可能性があります
Union
select substring_index(substring_index(cart,'&', 3),'&',-1 ) テーブル A より

間違いが起こりにくいように、数字は '&' の数より大きくする必要があります

3 はシーケンス番号であることに注意してください。1 つずつ増加させてください

現在、'&' は 1 つだけありますカート内にありますが、将来的には複数になる可能性があります
Union
select substring_index(substring_index(cart,'&', 3),'&',-1) from table A

の数は の数より大きくなければなりません

3 はシーケンス番号であり、1 つずつ増やす必要があることに注意してください
ああ、つまり、複数のアンパサンドがある場合は、いくつかの文を追加してください
Union
select substring_index(substring_index (cartname,'&',[color=#0000FF]3),'&',-1) from Table A[/color]
そうすると、青い数字が増えていますね。 & 記号なので、テーブル A から substring_index(cart,'&',1) を選択するだけで十分ですか? それなら、指示に従って 3 まで使用します。問題ありませんね?
問題ありません(取り出したアイテムが間違っている)場合は、もう一度追加します
明らかに、追加するほど効率は低下します

問題ありません(取り出したアイテムが間違っている) out は間違っています)、追加します
明らかに、追加するほど効率は低下します

それでは、モデレーターありがとうございます

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