ホームページ >バックエンド開発 >PHPチュートリアル >SQLの同じデータのマージの問題
A リストができました。次のようになります。最初にリストをスキップして、次の文で必要なものを確認できます。
名前カート
黄欣 悪者とクラスメート
陸秀秀 クラスメイト
劉毅 友人とクラスメート
私今すぐ新しいBリストを作成したいです テーブルAのカートは別に保存されています テーブルBは次のようになります
ID
1
ディスカッションに返信(解決策)
2つの関係がわかりません投稿者が言及したテーブルですが、投稿者の意図がわかりませんプログラムは、関連する処理ロジックを定期的に実行し、最新のデータをテーブル B に挿入します。重複排除操作については、スクリプト ロジックの処理が簡単なので、これ以上は説明しません
テストに挿入(カート名)カートごとにユーザー情報グループからカートを選択します
上記と同様に、長い間取り組んできましたが、アンパサンドの重複排除にはまだ問題があります
実際、それはカテゴリの重複を排除することです。テーブル A の label フィールドを作成し、新しいテーブルに移動します
A テーブルから substring_index(cart ,'&',1) を選択します
Union
select substring_index(substring_index(cart,'&',2),'&',- 1) from A table
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 から
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);
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 は間違っています)、追加します
明らかに、追加するほど効率は低下します
それでは、モデレーターありがとうございます