gpt4 book ai didi

复杂搜索的 SQL 语法

转载 作者:行者123 更新时间:2023-12-03 18:33:38 26 4
gpt4 key购买 nike

我试图弄清楚如何格式化将执行复杂搜索的 SQL SELECT 命令

我有一个包含两个表的数据库。

文件
文件ID
文件路径

参数
参数名称
参数值
文件ID

目标是在参数中搜索多个值,然后只返回具有所有值的文件 ID。

这些是媒体文件,所以参数是格式、视频宽度、音频编解码器等...我希望用户能够根据需要选择尽可能多的这些字段,然后让它返回匹配所有参数。

因此,例如,我想选择所有具有 MKV 格式、AVC 视频编解码器和 AAC 音频编解码器的文件。

我不知道该怎么做。如果我进行左连接,我可以让它与一个参数一起工作,但只要添加一个参数,它就会失败。我假设我需要使用嵌套连接,但我对 SQL 不够好,无法确切地弄清楚如何做到这一点。

如果重要的话,这是一个使用 SQLite3 的本地 C++ 应用程序。

最佳答案

一种方法是使用 group byhaving :

select fileid
from parameters p
where (name = 'name1' and value = 'value1') or
(name = 'name2' and value = 'value2') or
(name = 'name3' and value = 'value3')
group by fileid
having count(distinct name) = 3;

“3”是您正在寻找的不同参数的数量。

关于复杂搜索的 SQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45912244/

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