V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AmoxiDu
V2EX  ›  程序员

SQL Server 单字段多值模糊查询

  •  
  •   AmoxiDu · Jan 14, 2020 via Android · 3450 views
    This topic created in 2303 days ago, the information mentioned may be changed or developed.

    求教 v 友:

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

    5 replies    2020-01-16 09:05:52 +08:00
    799635347
        1
    799635347  
       Jan 14, 2020
    union
    a87965028
        2
    a87965028  
       Jan 14, 2020
    或许可以再建一张表维护这茫茫多个模糊值,然后与表 T join ?
    yjhatfdu2
        3
    yjhatfdu2  
       Jan 15, 2020
    应该可以 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  
       Jan 15, 2020
    当然如果是 pg 的话可以更简单这样写,select a from t where a like any(array['%a%','%b%','%e%']); sqlserver 就不知道了
    mmdsun
        5
    mmdsun  
       Jan 16, 2020 via Android
    SQLServer 支持全文检索和分词。就别用 like 了吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4073 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.