したがって、SQLにはいくつかのテーブルがあり、その内容には、数字(この場合は1〜5)を含む「hashtag_id」というキーがあります。さっそく入って、IDが「1」のすべてのアイテムを「5」に変更したい。
これを自動的に行う方法はありますか?
update table set hashtag_id = 5
where hashtag_id = 1;
複数のテーブルがある場合は、phpmyadmin(または任意のmysql管理ツール)でそのようなことを行うことができます
これにより、information_schema.columnsテーブル(すべてのテーブルと列を記述)がクエリされ、hashtag_id
)という名前のすべての列に対して更新クエリが書き込まれます。
SELECT CONCAT('UPDATE ',
table_name,
' SET ',
column_name,
' = 5 WHERE ',
column_name,
' = 1;'
)
FROM information_schema.columns
WHERE column_name = 'hashtag_id';
--maybe add AND table_schema = <your_schema>
結果をコピーして実行します
これは、動的SQLを使用するストアドプロシージャでも実行できる可能性があります(MySQLでは使用されていないため、例はありません)。
テーブルごとに、次のクエリを実行する必要があります。
UPDATE yourtable
SET hashtag_id = 5
WHERE hashtag_id = 1
これにより、が1であるすべての行が検索hashtag_id
され、5に設定されます。
すべてのテーブルの名前を取得するには、次のクエリを実行できます。
SELECT table_name
FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND column_name = 'hashtag_id'
UPDATE MyTable
SET hashtag_id=5
WHERE hashtag_id=1;