MySQL - 嵌套在哪里条件

时间:2018-03-12 07:55:22

标签: mysql

我有一个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);

我收到此错误:

  

无效使用群组功能。

4 个答案:

答案 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}}