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