多行匹配的sql怎么写

帮忙看下这个问题怎么处理,想了一天了也没有好的方案
create table test_table{
    id int(11) comment  '主键id',
    biz_id varchar(64) comment  '业务id',
    config_type varchar(64) comment  '配置类型',
    config_key varchar(64) comment  '配置键',
    config_value varchar(64) comment  '配置值'
};

数据库简化字段后是这样的,业务id对下有多条配置数据,配置type和key能确认一个配置项的值

现在要查询 同时满足多项配置的业务id 有哪些

公司的框架禁止了级联查询,这个怎么处理呢?

【以下回答由 GPT 生成】

解决方案

根据问题描述,你想查询满足多个配置项的业务id,但由于公司框架禁止了级联查询,你希望知道如何处理这个问题。

首先,我们可以使用多个子查询来解决这个问题。每个子查询都查询满足一个特定配置项的业务id,然后使用INTERSECT操作符将子查询的结果取交集。

下面是一个示例的SQL查询语句,查询配置类型为'A'且配置键为'key1'的业务id:

SELECT biz_id FROM test_table WHERE config_type = 'A' AND config_key = 'key1'

根据你的需求,我们可能需要多个这样的子查询,并将它们的结果取交集。你可以根据具体的配置项来重复这个子查询,直到涵盖所有的配置项。

下面是一个示例代码,查询满足配置类型为'A'且配置键为'key1'的业务id,并且满足配置类型为'B'且配置键为'key2'的业务id:

SELECT biz_id FROM test_table WHERE config_type = 'A' AND config_key = 'key1'
INTERSECT
SELECT biz_id FROM test_table WHERE config_type = 'B' AND config_key = 'key2'

请按照相同的方式添加更多的子查询,以满足其他的配置项。

注意:查询结果将会是满足所有配置项的业务id的交集。如果你需要满足其中任意一个配置项的业务id的并集,可以将INTERSECT操作符替换成UNION操作符。

希望这个解决方案对你有所帮助。如果你对问题有更深入的理解,或者有其他的问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^