• Oracle like 里面的通配符 以及regexp_like


    关于like后面的条件,Oracle提供了四种匹配模式:

    1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

    比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

    将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

    另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
    SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

    若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%' 
    虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

    2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

    比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
    只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

    再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
    只找出“三脚猫”这样name为三个字且第一个字是“三”的;

    3. regexp_like 正则表达式函数查询


    --查询FieldName中以1开头60结束的记录并且长度是7位
    select * from fzq where FieldName like '1____60';
    select * from fzq where regexp_like(FieldName,'1....60');


    --查询FieldName中以1开头60结束的记录并且长度是7位并且全部是数字的记录。
    --使用like就不是很好实现了。
    select * from fzq where regexp_like(FieldName,'1[0-9]{4}60');


    -- 也可以这样实现,使用字符集。
    select * from fzq where regexp_like(FieldName,'1[[:digit:]]{4}60');


    -- 查询FieldName中不是纯数字的记录
    select * from fzq where not regexp_like(FieldName,'^[[:digit:]]+$');


    -- 查询FieldName中不包含任何数字的记录。
    select * from fzq where regexp_like(FieldName,'^[^[:digit:]]+$');


    --查询以12或者1b开头的记录.不区分大小写。
    select * from fzq where regexp_like(FieldName,'^1[2b]','i');


    --查询以12或者1b开头的记录.区分大小写。
    select * from fzq where regexp_like(FieldName,'^1[2B]');


    -- 查询数据中包含空白的记录。
    select * from fzq where regexp_like(FieldName,'[[:space:]]');


    --查询所有包含小写字母或者数字的记录。
    select * from fzq where regexp_like(FieldName,'^([a-z]+|[0-9]+)$');


    --查询任何包含标点符号的记录。
    select * from fzq where regexp_like(FieldName,'[[:punct:]]');

  • 相关阅读:
    mysql InnoDB 索引小记
    Linux shell 脚本小记
    Java中Integer的源码学习
    nginx小记
    位运算小结
    Redis小结
    CSS中nth-child和nth-of-type的简单使用
    Linux awk小记
    mysql小记--基础知识
    让44.1版本的sketch打开更高版本的sketch文件
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/9561177.html
Copyright © 2020-2023  润新知