返回

mysql-查询无法正常工作正常查询的工作方式

发布时间:2022-04-23 09:30:10 502
# kotlin# 数据库# 数据库

我有一个问题如下:

select model_name, price 
from   `car` v
where ( select count(*) 
        from   `car` vc
        where  vc.`price` > v.`price`
      ) < 5

使用数据集:

model_name  price
a            1
b            2
c            3
d            4
e            5
f            6
g            7
h            8
i            9
k            10

上面的查询获取的结果如下:

model_name  price
f            6
g            7
h            8
i            9
k            10

这里的主要问题是理解这个查询背后的逻辑流程。我理解的这个逻辑流就像交叉连接一样,子查询将在后端工作,如下所示:

VC_name     VC_Price    counts
a             1           0
b             2           1
c             3           2
d             4           3
e             5           4
f             6           5
g             7           6
h             8           7
i             9           8
k             10          9

如果我们进行这样的后端计算,它应该返回小于5的计数,该计数具有模型名称a、b、c、d、e,但该查询输出f、g、h、i、k。

现在,如果我们继续正常查询的工作方式,子查询将只返回一条记录,因为计数,然后如果条件为true,它将返回所有行,如果为false,它将只返回NULL。例如,如果子查询返回4,则返回4<;5、true它应该返回所有行,但输出完全不同。关于这一点的主要问题是MYSQL如何在后端处理这个查询,其流程是什么。

我希望我能解释我的问题。

提前谢谢。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像