Вам необходимо декодировать цвета в значения RGB в том же запросе, который используется для обновления вашей таблицы. Пока вы не используете какие-либо функции, переменные или другие таблицы, это можно сделать с помощью выражения CASE. Это не элегантное решение, но оно будет работать.
UPDATE products
SET
r = (CASE colour
WHEN 'Black' THEN 0
WHEN 'Red' THEN 255
WHEN 'Green' THEN 0
WHEN 'Blue' THEN 0
WHEN 'White' THEN 255
ELSE NULL
END),
g = (CASE colour
WHEN 'Black' THEN 0
WHEN 'Red' THEN 0
WHEN 'Green' THEN 255
WHEN 'Blue' THEN 0
WHEN 'White' THEN 255
ELSE NULL
END),
b = (CASE colour
WHEN 'Black' THEN 0
WHEN 'Red' THEN 0
WHEN 'Green' THEN 0
WHEN 'Blue' THEN 255
WHEN 'White' THEN 255
ELSE NULL
END)
Или, может быть, следующим образом:
UPDATE products
SET
r = (CASE
WHEN Colour IN ('Black', 'Green', 'Blue') THEN 0
WHEN Colour IN ('Red', 'White') THEN 255
ELSE NULL
END),
g = (CASE
WHEN Colour IN ('Black', 'Red', 'Blue') THEN 0
WHEN Colour IN ('Green', 'White') THEN 255
ELSE NULL
END),
b = (CASE
WHEN Colour IN ('Black', 'Red', 'Green') THEN 0
WHEN Colour IN ('Blue', 'White') THEN 255
ELSE NULL
END)
person
Serg
schedule
21.04.2011