不同的功能以某种方式不返回所有类型
Distinct function somehow not giving back all types
随时查看我的最新项目:http://arda-maps.org:2480 arda arda 作为登录名。
现在检查select distinct(type) from Location
这里有 8 条记录(River,Lake,Region,City,Island,House,Mountain,Hill)。但其实还有很多...
为了向您展示 distinct 并没有返回所有 distinct,我们搜索具有另一种类型的特定顶点:
select * from Location where name = "Citadel of Gondor"
我是不是用错了distinct。或者结果列表不完整的原因是什么?
奇怪。但如果你尝试:
select distinct(type) from Location limit -1
您将拥有全部 64 个不同的入口。
确实,查询部分在结果集中的应用顺序不是很明显。您输入了:
select distinct(type) from Location
东方工作室应用 limit 20
(除非您更改它或在查询中包含不同的限制)。所以最终运行的查询是
select distinct(type) from Location limit 20
现在,这可能意味着两者之一:
- 最多找到 20 个位置并给我它们的不同类型
- 最多找到 20 个不同类型的所有位置
显然,您所期望的是第 2 个,而发生的是第 1 个。解决方案是使用内部查询,这样 limit
将显式应用于外部查询:
select from (select distinct(type) from Location) limit 20
这下说得很清楚了,给我找所有位置的不同类型,return我最多20个(和(2)一样)
随时查看我的最新项目:http://arda-maps.org:2480 arda arda 作为登录名。
现在检查select distinct(type) from Location
这里有 8 条记录(River,Lake,Region,City,Island,House,Mountain,Hill)。但其实还有很多...
为了向您展示 distinct 并没有返回所有 distinct,我们搜索具有另一种类型的特定顶点:
select * from Location where name = "Citadel of Gondor"
我是不是用错了distinct。或者结果列表不完整的原因是什么?
奇怪。但如果你尝试:
select distinct(type) from Location limit -1
您将拥有全部 64 个不同的入口。
确实,查询部分在结果集中的应用顺序不是很明显。您输入了:
select distinct(type) from Location
东方工作室应用 limit 20
(除非您更改它或在查询中包含不同的限制)。所以最终运行的查询是
select distinct(type) from Location limit 20
现在,这可能意味着两者之一:
- 最多找到 20 个位置并给我它们的不同类型
- 最多找到 20 个不同类型的所有位置
显然,您所期望的是第 2 个,而发生的是第 1 个。解决方案是使用内部查询,这样 limit
将显式应用于外部查询:
select from (select distinct(type) from Location) limit 20
这下说得很清楚了,给我找所有位置的不同类型,return我最多20个(和(2)一样)