首页 > 解决方案 > 平面表上的 mySQL 包容性搜索

问题描述

我有下面的 SQL 表,我想知道是否可以使用这种表格式进行包容性搜索?这意味着如果有人要搜索 SSNU 和 ACCOUNT_NO,它只会在 CASE ID 具有与输入匹配的 SSNU 和 ACCOUNT_NO 时返回数据。

表结构

我尝试了如下的 where 子句:

AND (a.KEY = "ACCOUNT_NO" AND a.VALUE = "XXXXXX")
AND (a.KEY = "GPID" AND a.VALUE = "XXXXX")

但没有任何运气。

标签: mysqlsql

解决方案


如果“人”是指“案例ID”,那么我认为您需要聚合:

select case_id
from t
where (a.KEY = 'ACCOUNT_NO' AND a.VALUE = 'XXXXXX') or
      (a.KEY = 'GPID' AND a.VALUE = 'XXXXX')
group by case_id
having count(distinct a.key) = 2;

这将返回同时具有键/值对的案例。


推荐阅读