Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite查询以获取不同的列_Sql_Sqlite - Fatal编程技术网

SQLite查询以获取不同的列

SQLite查询以获取不同的列,sql,sqlite,Sql,Sqlite,我正在尝试编写一个查询,其中我需要检查另一个嵌套查询返回的字符串数组中是否不存在值,我如何才能做到这一点 比如我要检查一下 1234 is present in [abc_1234,fgh_12345,ghi_5343] 因此1234出现在字符串abc_1234中,因此我不会选择1234。我希望我正确理解您的请求。您有一个返回字符串的查询,例如“abc_1234”和“fgh_12345”。您有一个带有值的表,例如“1234”。您希望从表中选择值不属于现有查询的任何字符串的行 这就是反连接模式发

我正在尝试编写一个查询,其中我需要检查另一个嵌套查询返回的字符串数组中是否不存在值,我如何才能做到这一点

比如我要检查一下

1234 is present in [abc_1234,fgh_12345,ghi_5343]

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

我希望我正确理解您的请求。您有一个返回字符串的查询,例如“abc_1234”和“fgh_12345”。您有一个带有值的表,例如“1234”。您希望从表中选择值不属于现有查询的任何字符串的行

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

select *
from mytable m
left join (<your query here>) q on instr(q.string, m.value) > 0
where q.string is null;
选择*
从我的表m
instr上的左连接()q(q.string,m.value)>0
其中q.string为null;

(除了
INSTR
之外,您还可以在q.string上使用
LIKE
,比如“%”m.value | |‘%”
。选择哪种字符串操作都不重要。)

可能重复的旁注:1234也出现在fgh|U 12345中。如果你不认为这是一个匹配,那么你应该完善的规则是适用的。是的,我必须选择1234,如果FGHY12345是目前,因为他们并不完全匹配,那么你认为什么是一个精确的匹配?两个字符串都包含子字符串1234和一些其他字符。准确定义适合您的匹配项。(顺便说一句:当您必须计算子字符串时,这通常是数据库设计不佳的标志。当然,不总是这样。您可以在“%socks%”上对您的项目进行快速的特别搜索,以便找到socks,因为您知道您可能没有得到所有socks,甚至可能得到一些非socks;这并不意味着您的数据库设计不好。)