求教 v 友:
对表 T 的字段 a 进行模糊查询,模糊值不少于 1000 个,除了用 or 拼接,有没有其他优雅的写法
1
799635347 2020-01-14 19:13:12 +08:00
union
|
2
a87965028 2020-01-14 23:03:28 +08:00
或许可以再建一张表维护这茫茫多个模糊值,然后与表 T join ?
|
3
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 不支持 |
4
yjhatfdu2 2020-01-15 11:35:26 +08:00
当然如果是 pg 的话可以更简单这样写,select a from t where a like any(array['%a%','%b%','%e%']); sqlserver 就不知道了
|
5
mmdsun 2020-01-16 09:05:52 +08:00 via Android
SQLServer 支持全文检索和分词。就别用 like 了吧
|