SQL Server 单字段多值模糊查询

2020-01-14 16:58:56 +08:00
 AmoxiDu

求教 v 友:

对表 T 的字段 a 进行模糊查询,模糊值不少于 1000 个,除了用 or 拼接,有没有其他优雅的写法

2751 次点击
所在节点    程序员
5 条回复
799635347
2020-01-14 19:13:12 +08:00
union
a87965028
2020-01-14 23:03:28 +08:00
或许可以再建一张表维护这茫茫多个模糊值,然后与表 T join ?
yjhatfdu2
2020-01-15 11:33:23 +08:00
应该可以 select t.a,t2.p from t,(values('%a%'),('%b%'),('%c%')) as t2(p) where t.a like t2.p;
中间 values 表达式可以任意多个,pg、sqlserver 支持类似写法,oracle 和 mysql 不支持
yjhatfdu2
2020-01-15 11:35:26 +08:00
当然如果是 pg 的话可以更简单这样写,select a from t where a like any(array['%a%','%b%','%e%']); sqlserver 就不知道了
mmdsun
2020-01-16 09:05:52 +08:00
SQLServer 支持全文检索和分词。就别用 like 了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637870

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX