No, musím přiznat, že mi chvíli trvalo, než jsem pochopil, na co se ptáte. Tabulka2 má 7 sloupců s0 až s6 a vy chcete získat hodnotu ze sloupce, který odpovídá datu. Ano?
Takže samozřejmě pomocí
SELECT CURRENT_DATE(), s2
vám dává obsah s2, zatímco
SELECT CURRENT_DATE(), CONCAT('s',DAYOFWEEK(CURRENT_DATE())-1)
vám dává 's2'. Bylo by to hrozné, kdyby ne. Opravdu očekáváte, že DBMS vypočítá hodnotu a poté zkontroluje, zda se tato hodnota náhodou shoduje s názvem sloupce? Potom
select name, job from person;
by ve většině případů vybral jméno osoby a zaměstnání, ale pro osobu jménem Job byste místo toho dostali zakázku dvakrát. Vidíte, že to nelze chtít, že?
Zkontrolujte tedy výsledek svého výrazu a čtěte z příslušného sloupce:
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;