假设我有一个表list
,其中包含
list_Name
A1
A2
A3
A4
另一个表dest
包含一个长字符串
ID String
1 A1 This is line 1 A2
2 A3 Line number 2
3 A5 Line 3
使用list
表中的值,我想找到dest
表
我所知道的是逐一取出它们。实施例 -
SELECT * FROM dest WHERE string LIKE '%A1%' OR string LIKE '%A2%'
但我怎样才能对LIKE
表中的每个值使用list
?
list
表可以有n个记录。
答案 0 :(得分:2)
您可以使用JOIN/EXISTS
检查LIST
表中的每个值。
我通常更喜欢EXISTS
来检查存在。
SELECT *
FROM dest d
WHERE exists (select 1 from list l where d.string LIKE '%'+list_Name+'%')
要解决排序规则冲突,我们可以使用显式排序规则
SELECT *
FROM dest d
WHERE EXISTS (SELECT 1
FROM list l
WHERE d.string COLLATE database_default LIKE
'%' + list_name + '%' COLLATE database_default)