0

私が取り組んでいることと、それを改善する必要があること:

INSERT form_data (id,data_id, email) 
SELECT '',fk_form_joiner_id AS data_id
     , value             AS email 
  FROM wp_contactform_submit_data 
 WHERE form_key='your-email'

これはメールを受け取るだけです。これは素晴らしいことですが、別の列にインポートする必要がある form_key のいくつかの異なる値があるため、十分ではありません。foreach ループと更新を使用して php 経由で実行できることを認識していますただし、これは純粋に mysql で行う必要があります。

では、どのようにすればよいでしょうか: insert form_data(id,data,email,name,surname,etc) Select [..],Select [..]....

データは、実際のデータが何であるかを示す別のセルを使用して、可能な限り最もばかげた方法で 1 つのセルに 1 つのテーブルに格納されます: http://drp.ly/Jhx3J (スクリーンショット)

助けてください

4

2 に答える 2

0

これは問題ではありません。wp_contactform_submit_dataに数回(値ごとに1つずつ)参加する必要があります。

INSERT INTO form_data (data_id, email, name)
SELECT fk_form_joiner_id as data_id, email, name
FROM (SELECT fk_form_joiner_id, value as email
      FROM wp_contactform_submit_data
      WHERE form_key='your-email'
      ) as emails
JOIN (SELECT fk_form_joiner_id, value as name
      FROM wp_contactform_submit_data
      WHERE form_key='your-name') as names
  USING (fk_form_joiner_id)
;
于 2010-04-02T10:06:11.273 に答える
0

あなたの質問では、必要な他のデータがどこに保存されているかは明らかではありませんが、次のようなものを探している可能性があります。

INSERT form_data (id,data_id, email,city) 
SELECT A.fk_form_joiner_id AS data_id
     , A.value             AS email 
     ,B.value               AS city
  FROM wp_contactform_submit_data A,
       wp_contactform_submit_data B
  WHERE A.form_key='your-email' AND 
        B.form_key='your-city' and
        A.fk_form_joiner_id=B.fk_form_joiner_id

このロジックを拡張して、少数の複数フィールドを非常に簡単に処理できます。1 つ以上のデータ値が欠落している場合は、すべてのレコードを取得するために A と B の間で外部結合を行う必要があります。

明らかに、各列に対して新しい結合を作成する必要がありますが、これは何らかの形でタスクを完了するために必要です。

wp_contactform_submit_data(fk_form_joiner_id,form_key) のインデックスも、このクエリをかなり効率的にします。

于 2010-04-01T12:18:21.900 に答える