我有一张十六进制颜色表(500 行)和一张国家表(~250 行)。我想使用循环遍历每个国家/地区,从“颜色”列中的十六进制表中为其分配新的十六进制颜色
我可以在 phpmyadmin 中执行此操作吗?
我有一张十六进制颜色表(500 行)和一张国家表(~250 行)。我想使用循环遍历每个国家/地区,从“颜色”列中的十六进制表中为其分配新的十六进制颜色
我可以在 phpmyadmin 中执行此操作吗?
使用UPDATE
带有子查询的语句从十六进制表中选择值:
UPDATE `countries` SET `color` =
(SELECT `color` FROM `hex_colors` ORDER BY RAND() LIMIT 1)
在 phpmyadmin 中,选择您的数据库,然后单击管理屏幕顶部的 SQL 选项卡。输入更新语句,然后点击“Go”
编辑:如果您想确保颜色值和国家/地区之间的一对一映射,以便没有重复的值,我会在每个表中添加一个临时列,即order
运行一个更新,将顺序值分配给该列对于这两个表,然后使用十六进制颜色表中的颜色值更新国家表,并通过以下方式连接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`;