SQLite查询以获取不同的列

时间:2016-02-18 10:28:51

标签: sql sqlite

我正在尝试编写一个查询,我需要检查另一个嵌套查询返回的字符串数组中是否存在值,我该怎么做呢,

例如,我必须检查是否,

1234 is present in [abc_1234,fgh_12345,ghi_5343]

因此字符串abc_1234中存在1234,因此我不会选择1234。

1 个答案:

答案 0 :(得分:0)

我希望我能正确理解你的要求。您有一个返回字符串的查询,例如' abc_1234'和' fgh_12345'。你有一个包含值的表,例如' 1234&#39 ;.您希望从表中选择值不属于现有查询的任何字符串的行。

这是反连接模式发挥作用的地方。您外部加入了不需要的行,因此找不到合作伙伴的所有行都是所需的行:

select *
from mytable m
left join (<your query here>) q on instr(q.string, m.value) > 0
where q.string is null;

(而不是INSTR您还可以使用LIKEon q.string like '%' || m.value || '%'。您选择哪个字符串操作无关紧要。)

相关问题