我有一个像这样的选择语句:
Select * from A where name like 'a%' or name like 'b%' or name like 'j%' or name like ... etc
是否可以将%,b%,j%存储在某个表格中,以便我可以更轻松地管理此列表并将查询转换为以下内容:
Select * from A where name like (Select * from StringPatternToMatch)
答案 0 :(得分:0)
试试这个:
SELECT * FROM A
JOIN StringPatternToMatch patt ON A.name LIKE '%' + patt.pattern + '%';
将patt.pattern
替换为StringPatternToMatch
答案 1 :(得分:0)
您可以改为进行正则表达式搜索。
select *
from A where name regexp '^[abjf]';
维护的查询比大量或类似的更容易。
'^[abjf]'
表示匹配字符串的开头(^
),后跟列表中的任何字符([abjf]
)。它并不关心那之后会发生什么。
如果您找到以它们开头的名称,只需在列表中添加更多字母即可。