16進色のテーブル(500行)と国のテーブル(〜250行)があります。ループを使用して各国を調べ、「color」列の16進テーブルから新しい16進色を割り当てたいと思います。
phpmyadminでこれを行うことはできますか?
16進色のテーブル(500行)と国のテーブル(〜250行)があります。ループを使用して各国を調べ、「color」列の16進テーブルから新しい16進色を割り当てたいと思います。
phpmyadminでこれを行うことはできますか?
サブクエリを含むステートメントを使用しUPDATE
て、16進テーブルから値を選択します。
UPDATE `countries` SET `color` =
(SELECT `color` FROM `hex_colors` ORDER BY RAND() LIMIT 1)
phpmyadminでデータベースを選択し、管理画面の上部にある[SQL]タブをクリックします。更新ステートメントを入力し、[実行]をクリックします
編集:色の値と国の間で1対1のマッピングを確保して、値が重複しないようにする場合は、各テーブルに一時的な列を追加します。つまりorder
、その列に順次値を割り当てる更新を実行します。両方のテーブルについて、国のテーブルを16進カラーテーブルのカラー値で更新しますorder
。
SELECT @i := 0;
SELECT @j := 0;
ALTER TABLE `countries` ADD COLUMN `order` INT;
ALTER TABLE `hex_colors` ADD COLUMN `order` INT;
UPDATE `countries` SET `order` = @i := @i + 1;
UPDATE `hex_colors` SET `order` = @j := @j + 1;
UPDATE `countries` c, `hex_colors` h SET c.`color` = h.`color`
WHERE c.`order` = h.`order`;
ALTER TABLE `countries` DROP COLUMN `order`;
ALTER TABLE `hex_colors` DROP COLUMN `order`;