我表里有7个字段:
w1:星期日
w2:星期1
w3:星期2
w4:星期3
w5:星期4
w6:星期5
w7:星期6现在要求使用一条SQL(不能用存储过程)语句求出今天的数据,例如今天是星期五,那么:
select 'w' +DAYOFWEEK(CURDATE()) from table LIMIT 1
这里'w' +DAYOFWEEK(CURDATE())是指w6,但这样做肯定是不对的或者select index6 from table LIMIT 1
这里index6还是指w6,因为w6的序号在第6位有什么方法实现上面的要求吗?
w1:星期日
w2:星期1
w3:星期2
w4:星期3
w5:星期4
w6:星期5
w7:星期6现在要求使用一条SQL(不能用存储过程)语句求出今天的数据,例如今天是星期五,那么:
select 'w' +DAYOFWEEK(CURDATE()) from table LIMIT 1
这里'w' +DAYOFWEEK(CURDATE())是指w6,但这样做肯定是不对的或者select index6 from table LIMIT 1
这里index6还是指w6,因为w6的序号在第6位有什么方法实现上面的要求吗?
SET ASQL=CONCAT('select w',DAYOFWEEK(CURDATE()),' from table LIMIT 1 ');
PREPARE STML FROM @ASQL;
EXECUTE STML;
CASE DAYOFWEEK(CURDATE())
WHEN 1 THEN (select w1 from table LIMIT 1)
WHEN 2 THEN (select w2 from table LIMIT 1)
WHEN 3 THEN (select w3 from table LIMIT 1)
WHEN 4 THEN (select w4 from table LIMIT 1)
WHEN 5 THEN (select w5 from table LIMIT 1)
WHEN 6 THEN (select w6 from table LIMIT 1)
WHEN 7 THEN (select w7 from table LIMIT 1) END AS "weekdata"
FROM table;