Е, трябва да призная, че ми отне известно време, за да разбера какво питате. Таблица2 има 7 колони от s0 до s6 и искате да получите стойността от колоната, съответстваща на датата. Да?
Така че, разбира се, използвайки
SELECT CURRENT_DATE(), s2
ви дава съдържанието на s2, докато
SELECT CURRENT_DATE(), CONCAT('s',DAYOFWEEK(CURRENT_DATE())-1)
дава 's2'. Би било ужасно, ако не. Наистина ли очаквате СУБД да изчисли стойност и след това да провери дали тази стойност съвпада с име на колона? След това
select name, job from person;
ще избере името и работата на лицето в повечето случаи, но за лицето на име Работа ще получите работата два пъти вместо това. Виждате, че това не може да се желае, нали?
Така че вместо това проверете резултата от израза си и прочетете от съответната колона:
insert into table_1 (datum, comment)
select
current_date(),
case dayofweek(current_date()) - 1
when 0 then s0
when 1 then s1
when 2 then s2
when 3 then s3
when 4 then s4
when 5 then s5
when 6 then s6
end
from table_2 where id = 12345;