2017-11-14 4 views
0

"pid"カラムと各データベースのテーブルが多かったので、すべてのデータベースをすべて "pid"カラムで更新したい'pid' = 3の場合は 'pid' = 5を設定し、1つのクエリで 'pid =' 7 'の場合は' pid '= 6を設定します。MYSQLの各値に対して同じ列名を持つ複数のテーブルを更新

私はこのような記事を見つけて、それを適用しようとしました:

Select 'UPDATE ' + TABLE_NAME + ' SET pid = ''5'' ' 
From INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'pid' 

その後、MYSQLはちょうど私に値0を持つ選択を返し、それをしようとする条件がないと。

'UPDATE ' + TABLE_NAME + ' SET pid = ''5'' ' 
              0 

このクエリを動作させ、その動作を理解してください。

本当に感謝の誰もがそれはこのように実装する必要があり

+0

動的SQLが必要なので、[テーブル名が変数のMySQLを選択する方法](https://stackoverflow.com/questions/8809943/how-to-select-from-mysql-where-テーブル名の変数)または約百他 –

+0

私は欲しいものをするために多分別の方法をおねがいします、そして、私はphp(クエリ)のexecであるために1つの要求でこれを行うことができると推測しました。 – Kanzaki

+0

それは本当に「別の」方法ではありません。それは**の**方法です。代わりに、上記のように必要なコマンドを生成するために文字列を '選択 'するだけで、クエリエディタでそれらの文字列をコピー&ペーストして実行することができます。これは動的SQLが何をしているかを手動で行う方法ですとにかくあなたのために。 –

答えて

-1
UPDATE table_name 
SET pid = 5 
WHERE pid = 3; 

を:)。あなたは、単にそれが "としてそれを見つけた場所に「」としてPIDを設定するTABLE_NAMEという名前のテーブルを更新するように伝えます。

また、hereも読んでください。 ;)

+0

それは本当に私が望むものではありません、私は実際には 'pid'列を持つ4つのテーブルを持っていて、私は1つの要求で列 'pid'を持つすべてのテーブルを更新し、私のすべてのデータベースのテーブル。 – Kanzaki

+0

可能かどうかわかりませんが、カンマを追加して次のようなステートメントを起動してみてください:update table1、table2、table3 SET ... –

+0

ここで読んだことを忘れてしまいました:https:// stackoverflow .com/questions/2044467/how-to-update-two-tables-in-one-statement-in-one-SQL-server-2005 –

関連する問題