我表里有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位有什么方法实现上面的要求吗?

解决方案 »

  1.   

    必须使用SP,
    SET ASQL=CONCAT('select w',DAYOFWEEK(CURDATE()),' from table LIMIT 1  ');
    PREPARE STML FROM @ASQL;
    EXECUTE STML;
      

  2.   

    SELECT 
    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; 
      

  3.   

    最好的方法是在程序段判断 然后拼接sql给数据库