zoukankan      html  css  js  c++  java
  • SQL通配符

    通常我们只是用 %  作为通配符,用来表示任意个字符。

    但sql中的通配符还有 下划线 _ ,用来标识任意一个字符

    实例

    SELECT * FROM Websites
    WHERE name LIKE '_oogle';

    执行输出结果:

     
     
    问题再延伸,如果我们数据中有包含下划线的字符,那么该怎么处理呢?
     
    --需求,找到name中包含下划线的内容,即 把前两条筛出来
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%_%';

     不对,这里的下划线别理解成了通配符

    -- 那么使用右斜杠+下划线的模式来转译他,可以么?
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%\_%';

     依然不对,这里斜杠并没有起到转译的作用。

    查了下,自己以前不认识这个关键字。ESCAPE

    -- 使用ESCAPE 关键字来表示【这个字符后边的东西,该被识别成普通字符。】?
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%\_%' ESCAPE '';

     结果对了。那么换个别的字符呢?

    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%?_%' ESCAPE '?';
    ---
    
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%!_%' ESCAPE '!';

    结果都是

    妥了。

     
     
     
     
  • 相关阅读:
    idea gson使用
    spring对象工具类
    java反射判断对象空字段
    说说沟通乱这件事
    RandomShuffleQueue
    学习材料
    python异常处理
    tensorboard基础使用
    深度学习——特殊应用:人脸识别和神经风格转换[13]
    深度学习——目标检测[12]
  • 原文地址:https://www.cnblogs.com/adamgq/p/14318035.html
Copyright © 2011-2022 走看看