2017-09-22 1 views
1

mysqlで80000行のテーブルを使用しています。具体的には、phpMyAdminからアクセスしています。行の値を空の一致条件にコピーするためのSQLコマンド

ランダムなユーザーIDが一般名フィールドに表示されていないが、出荷および課金フィールドにその名前が表示されています。以下に私がSQLコマンドで何が起こる必要があるかを示します。

user_idのmeta_key first_name値が空白の場合 user_idのmeta_key(shipping_first_name)を一致するuser_idのmeta_key(first name)にコピーします。

私はdbのjpgを添付しているので、フィールドが存在するフィールドを見ることができます。 Picture of rows mentioned.

答えて

1

私は次のアップデート試すことができると思います:として、私は最初の名前のために欠損値に関しては、あなたのテーブルに同じものとして空の文字列とヌルを治療するための上記COALESCEを使用

UPDATE yourTable t1 
INNER JOIN yourTable t2 
    ON t1.user_id = t2.user_id AND 
     t1.meta_key = 'first_name' AND 
     t2.meta_key = 'shipping_first_name' 
SET t1.meta_value = t2.meta_value 
WHERE 
    COALESCE(t1.meta_value, '') = '' 

をあなたが使っているのはどちらですか?

+0

これは完全に機能しました。私はPHPとWebコーディングをベースにしているので、私は知識に感謝します。 テーブルは私によって構築されませんでしたが、空の文字列とヌル値が含まれているため、COALESCEを使用することもできます。 –

関連する問題