SQL 查询以检查从另一个结果集提供的“类似‘%’字符串数组‘%’”。
SQL query to check `like '%' array of strings '%' ` supplied from another result set.
我有两个表:t1 和 t2。共有三个步骤:在 t1 select a Set_of_strings 中,id = 1(“1a”和“3c”)。来自 t1 select 对应于 OPTIONID ='A' 并且包含来自 Set_of_strings.
的子字符串的字符串
t1
ID NAME
1 "1a"
2 "2b"
1 "3c"
t2
OPTIONID TXT
A "7h 9t"
B "1a 8n"
A "2b 4r"
A "3c 6u"
SELECT
NAME
FROM t1
WHERE ID = 1; -- 1a, 3c
SELECT
TXT
FROM t2
WHERE OPTIONID = 'A' AND (TXT LIKE '%1a%' OR TXT LIKE '%3c%') --"3c 6u"
如何自动化 TXT LIKE '%1a%' OR TXT LIKE '%3c%'
部分?
LIKE'%1a%'
是安全的,因为所有条目都具有相同的格式 e.i。 TXT
列中没有 1a2
。
看看这是否有效:
SELECT DISTINCT
t2.TXT
FROM
t2
INNER JOIN t1 ON
t1.ID=1 AND
t2.TXT LIKE '%'+t1.NAME+'%'
WHERE
t2.OPTIONID = 'A';
我想你只是想要加入
SELECT TXT
FROM t2
JOIN t1 on t2.TXT = t1.NAME and t1.ID = 1
WHERE OPTIONID = 'A'
我有两个表:t1 和 t2。共有三个步骤:在 t1 select a Set_of_strings 中,id = 1(“1a”和“3c”)。来自 t1 select 对应于 OPTIONID ='A' 并且包含来自 Set_of_strings.
的子字符串的字符串t1
ID NAME
1 "1a"
2 "2b"
1 "3c"
t2
OPTIONID TXT
A "7h 9t"
B "1a 8n"
A "2b 4r"
A "3c 6u"
SELECT
NAME
FROM t1
WHERE ID = 1; -- 1a, 3c
SELECT
TXT
FROM t2
WHERE OPTIONID = 'A' AND (TXT LIKE '%1a%' OR TXT LIKE '%3c%') --"3c 6u"
如何自动化 TXT LIKE '%1a%' OR TXT LIKE '%3c%'
部分?
LIKE'%1a%'
是安全的,因为所有条目都具有相同的格式 e.i。 TXT
列中没有 1a2
。
看看这是否有效:
SELECT DISTINCT
t2.TXT
FROM
t2
INNER JOIN t1 ON
t1.ID=1 AND
t2.TXT LIKE '%'+t1.NAME+'%'
WHERE
t2.OPTIONID = 'A';
我想你只是想要加入
SELECT TXT
FROM t2
JOIN t1 on t2.TXT = t1.NAME and t1.ID = 1
WHERE OPTIONID = 'A'