gpt4 book ai didi

sql - 大型SELECT查询似乎向相同但较小的SELECT查询返回不同的顺序?

转载 作者:行者123 更新时间:2023-12-03 15:08:53 25 4
gpt4 key购买 nike

我正在执行一个SQLite查询,以获取一堆图像ID的所有图像路径。 ID的顺序需要维护。如果我查询5个ID,则会以正确的顺序返回5个路径。但是,如果我保持查询完全相同但查询72,000个ID,则我收到的返回顺序不同吗?

为什么会这样呢?我已经复制并粘贴了2个查询和2个结果(显然减去了全部72,000个ID和结果)。

这对任何人有意义吗?

查询(带有5个ID)

SELECT Path FROM Images WHERE MicrosoftId IN ('78003','78010','78080','78149','78196')


结果(这是正确的!)

"~/ImagesPath/36/20160818_082235_000.jpg"
"~/ImagesPath/36/20160818_082904_000.jpg"
"~/ImagesPath/36/20160818_092336_000.jpg"
"~/ImagesPath/36/20160818_101818_000.jpg"
"~/ImagesPath/36/20160818_105621_000.jpg"


查询(带有72,000个ID)

SELECT Path FROM Images WHERE MicrosoftId IN (('78003','78010','78080','78149','78196','78229','78231','78236','78237','78238','78248','78250'...etc 72,000 more)


结果(这是不正确的!为什么更改顺序?)

"~/ImagesPath/36/20160818_050623_000.jpg"
"~/ImagesPath/36/20160818_050710_000.jpg"
"~/ImagesPath/36/20160818_050844_000.jpg"
"~/ImagesPath/36/20160818_050449_000.jpg"
"~/ImagesPath/36/20160818_050757_000.jpg"
etc... to 72,000


编辑:您将如何对这两个查询进行联接?

SELECT MicrosoftId FROM TagsMSCV WHERE name IN ('" + some vars + "') GROUP BY MicrosoftId ORDER BY COUNT(MicrosoftId) DESC




SELECT Path FROM Images WHERE MicrosoftId IN ('" + results from above query + "')

最佳答案

SELECT Path FROM Images i
JOIN TagsMSCV t ON i.MicrosoftId = t.MicrosoftId
WHERE t.name IN ('" + some vars + "') GROUP BY t.MicrosoftId ORDER BY
COUNT(t.MicrosoftId) DESC


这种连接应该可以解决问题

关于sql - 大型SELECT查询似乎向相同但较小的SELECT查询返回不同的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49073874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com