gpt4 book ai didi

sql - 在 mySQL 的 WHERE IN 子句中保持排序

转载 作者:行者123 更新时间:2023-11-29 06:23:24 26 4
gpt4 key购买 nike

我正在运行以下 SQL 查询:

SELECT * FROM cms_albums WHERE id IN (SELECT album_id FROM cms_albums_collections WHERE collection_id = 1 ORDER BY position ASC)

现在,假设内部查询

SELECT album_id FROM cms_albums_collections WHERE collection_id = 1 ORDER BY position ASC

返回以下内容:

album_id
"4"
"2"

这就是我想要的顺序。然而,整个查询将返回:

id   name   
"2" "Second album"
"4" "First album"

我假设这是因为“cms_albums”表中的条目按此顺序排列。有什么方法可以按照内部查询给出的顺序获得总体结果吗?

谢谢

最佳答案

尝试这个变体:

SELECT  DISTINCT c.*
FROM cms_albums c
JOIN cms_albums_collections cc
ON c.id = cc.album_id
WHERE cc.collection_id = 1
ORDER BY
cc.position ASC

IN 列表中的项目顺序会丢失,而是形成一个联接,然后您可以应用您想要的顺序。

关于sql - 在 mySQL 的 WHERE IN 子句中保持排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1698722/

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