MySQL使用DAYNAME()赋值变量时出现1327未声明变量错误求助
问题解决:MySQL SELECT INTO 变量赋值报错 Error Code: 1327
错误原因:你的SELECT语句错误使用了两次
INTO关键字。MySQL中,将多个查询结果赋值给变量时,只需写一次INTO,随后依次列出所有目标变量即可,无需给每个字段单独添加INTO。原语句里的DAYNAME(SUBDATE(current_date, 1)) into @day1name会被MySQL误认为要把值赋值给名为DAYNAME的未声明变量,因此触发1327错误。修正后的语句:
set @day1 = 0, @day1name = ''; select count(*), DAYNAME(SUBDATE(current_date, 1)) into @day1, @day1name from site_stats where last_visit_on = subdate(current_date, 1);
- 补充优化:
DAYNAME(SUBDATE(current_date, 1))的结果是固定的昨日星期名称,不需要依赖site_stats表的查询结果,也可以分开赋值,逻辑更清晰:
set @yesterday = SUBDATE(current_date, 1); set @day1name = DAYNAME(@yesterday); select count(*) into @day1 from site_stats where last_visit_on = @yesterday;
内容的提问来源于stack exchange,提问作者MdFarzan
相关产品推荐
相关产品推荐

