首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AmoxiDu
V2EX  ›  程序员

SQL Server 单字段多值模糊查询

  •  
  •   AmoxiDu · 5 天前 via Android · 599 次点击

    求教 v 友:

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

    5 回复  |  直到 2020-01-16 09:05:52 +08:00
    799635347
        1
    799635347   4 天前
    union
    a87965028
        2
    a87965028   4 天前
    或许可以再建一张表维护这茫茫多个模糊值,然后与表 T join ?
    yjhatfdu2
        3
    yjhatfdu2   4 天前
    应该可以 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
        4
    yjhatfdu2   4 天前
    当然如果是 pg 的话可以更简单这样写,select a from t where a like any(array['%a%','%b%','%e%']); sqlserver 就不知道了
    mmdsun
        5
    mmdsun   3 天前 via Android
    SQLServer 支持全文检索和分词。就别用 like 了吧
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3195 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 10:19 · PVG 18:19 · LAX 02:19 · JFK 05:19
    ♥ Do have faith in what you're doing.