我有一个非常复杂的MySQL查询问题,但我已将问题缩小到下面的SQL。问题是MySQL日期函数(WEEK,YEAR等)不接受存储在用户变量中的日期时间。
SELECT
@test := datetime
,datetime
FROM `agenda`
WHERE YEAR(@test) = 2011
这不会给我任何结果,但是,下面的SQL给了我结果:
SELECT
@test := datetime
,datetime
FROM `agenda`
WHERE YEAR(datetime) = 2011
(datetime是议程表中的字段名。)
这里有什么问题?
答案 0 :(得分:1)
在第一个查询中,您尝试根据WHERE子句设置@test等于datetime字段值,该子句本身是指@test的值。
除非@test预先有一个值,否则你不能指望这会产生任何有意义的结果。