我有一个mysql表,如下所示:
image_id imagename brandname x y
143 00003.jpg Pirelli 147 265
125 00003.jpg Pirelli 500 259
通过鼠标点击,我在html画布上生成x和y位置,我想用它来对表进行子集化。例如,如果x和y的单击位置分别为510和262,我想检索图像ID 125,因为两个参数都匹配。
假设用鼠标点击生成的x值是510,我想选择image_id为125的行。
我尝试了以下内容:
select * from table where imagename='00003.jpg' and 510 < max(x);
我收到此错误:
无效使用群组功能。
答案 0 :(得分:1)
Max是一个群组功能...如果没有群组,就不能使用它。
您正在比较X和y值,因此请直接使用它们,无需使用Max
答案 1 :(得分:0)
正如@ user769889已提到的那样,您不能使用Min, Max
之类的聚合函数而不使用Group By
这就是您收到该错误的原因。
我认为你需要这个:
select * from table where imagename='00003.jpg' and x < 510 and y < 262
答案 2 :(得分:0)
Max
是一个分组功能,你不能那样使用它。您可以使用followind嵌套查询来实现所需:
select * from table where imagename='00003.jpg' and 510 < (select max(x) from table where imagename = '00003.jpg')
这将运行内部查询,该查询返回图像的x
列的最大值,然后使用其where
子句中的结果运行外部查询!
答案 3 :(得分:0)
这对我有用:
{{1}}