Используйте UPDATE
заявление с подзапрос для выбора значения из шестнадцатеричной таблицы:
UPDATE `countries` SET `color` =
(SELECT `color` FROM `hex_colors` ORDER BY RAND() LIMIT 1)
В PHPMyAdmin, выберите базу данных, а затем нажмите на вкладку SQL в верхней части экрана администратора. Введите оператор обновления, затем нажмите кнопку «Go»
EDIT: Если вы хотите, чтобы один к одному отображению между значениями цвета и странами, так что никаких значений не дублируется, я хотел бы добавить временную колонку в каждая таблица, т.е. 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`;
не удался RAND() может поместить один и тот же цвет в две строки? Я бы предпочел, чтобы строка 1 из шестицветников вставлялась в строку 1 стран и так далее ... – livinzlife
Обновлен мой ответ, чтобы отразить тот факт, что вы хотите сопоставление «один к одному» –
Очень приятное решение, отлично работало! благодаря – livinzlife