为了账号安全,请及时绑定邮箱和手机立即绑定

语句报错,不知什么原因,请指教

DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT ANY_VALUE(goods_id),goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name) >= 2 ) AS t2  ON t1.goods_name = t2.goods_name  WHERE t1.goods_id > t2.goods_id; 报错:Unknown column 't2.goods_id' in 'where clause' 不知道什么原因。

正在回答

2 回答

我用的是5.6.24,难道是新特性,问一下ANY_VALUE有什么作用?

0 回复 有任何疑惑可以回复我~
#1

尼禄的火焰城堡 提问者

语法规范,因为做分组的时候,有的字段的排序是依据另一字段来的,此时该字段需要加ANY——VALUE。官方文档说的是5.7.5会依据sql99的标准(之前是依据sql92),所以现在这么写会因为语法不规范而报错。
2016-03-14 回复 有任何疑惑可以回复我~

ANY_VALUE应该是ANY吧,还有就是如果在这里使用ANY的会,你让t2的数据表怎么存储啊,到底存ANY中的一个还是多个,ANY只是个比较运算符吧

0 回复 有任何疑惑可以回复我~
#1

尼禄的火焰城堡 提问者

我的是mysql5.7.5,现在做group by的时候,如果不写ANY_VALUE,会报语法错误。
2016-03-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

语句报错,不知什么原因,请指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信