0

たとえば、別の列の値を使用して、列内の 1 つの値を同じ列内の別の値にコピーしようとしています。

column 1 - column 2
703 - /2/3/image.jpg
106 - "empty"
100 - description

したがって、列1の値が706である列2の値をコピーし、列1の値が106である列2に入れ、説明を少し残します。これを行うためのクエリを知っている人はいますか?

ありがとう、サイモン

ノート:

提案を行っているときに次のエラーが発生する

1093 - FROM 句で更新するターゲット テーブル 'mage_catalog_product_entity_varchar' を指定することはできません

返信ありがとうございます: このメソッドを実行する方法がわからない場合は、INNER JOIN を追加する必要がありますが、アドバイスをもう一度いただければ幸いです。

4

2 に答える 2

0

次のように、サブクエリを使用してそれを行うことができます。

update tablename set column2 = (select column2 from tablename where column1 = 706 limit 1) where column1 = 106;

EDIT 結局のところ
、更新しているテーブルを参照するサブクエリを持つことはできません。そのため、INNER JOIN を使用する必要があります (こちらの回答を参照してください: https://stackoverflow.com/a/4268431/1095946 )。

次のようなことを試してください:

UPDATE mage_catalog_product_entity_varchar t1, mage_catalog_product_entity_varchar t2
SET t1.value = t2.value
WHERE t1.attribute_id = 106
  AND t2.attribute_id = 703
于 2012-10-26T15:08:17.293 に答える
0
Update table t1, table t2 
SET t1.column2 = t2.column2 
WHERE t1.column1 = 106 AND t2.column1 = 706
于 2012-10-26T15:08:35.613 に答える