खैर, मुझे यह स्वीकार करना होगा कि आप जो पूछ रहे हैं उसे समझने में मुझे कुछ समय लगा। तालिका 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;