• SQL 模糊查询


    执行数据库查询时,有完整查询和模糊查询之分。

    一般模糊语句格式如下:

    SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件;

    其中,关于条件,SQL提供了四种匹配模式:

    1、%:表示零个或多个字符。

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

      比如:select * from flow_user where username like '%王%';

      将会把flow_user这张表里面,列名username中还有“王”的记录全部查询出来。

      另外,如果需要找到flow_user这张表里面,字段username中既有“唐”,又有“英”的记录,可以使用and条件,

      select * from flow_user where username like '%英%' and username like '%唐%';

      则可以查询出来所有包含“英”和“唐”的所有内容,“英”和“唐”所在的前后位置无所谓。

      若是用select * from flow_user where username like '%英%唐%';

      可以查出来包含“英唐”的内容,但是查不出来“唐英”的内容。

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

      select * from flow_user where username like '_英_';

      只能找到“王英琨”这样username为三个字且中间一个字是“英”的内容。

      再比如:select * from flow_user where username like '英__';

      只能找到“英雄点”这样username为三个字且第一个字是“英”的内容。

    3、[]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配的对象为他们中的任一个。

      select * from flow_user where username LIKE'[王李张]飞';

      将找出“王飞”“李飞”“张飞”(而不是“张王李飞”)。

      如[]内有一系列字符(01234,abcde之类的)则可略写为“0-4”,“a-e”:

      select * from flow_user where username like '老[0-9]';

      将找出“老1”、“老2”、……、“老9”;

      Oracle 10g以上的版本用法为:  

      select * from flow_user where regexp_like(username, '[张王李]飞');

    4、[^]:表示不在括号所列之内的单个字符。其取之和[]相同,但它所要求匹配对象为指定字符以外的任一个字符。

      select * from flow_user where username LIKE'[^王李张]飞';

      将找出不是“王飞”“李飞”“张飞“的”赵飞“、”吴飞“等。

      注:oracle like 不支持正则,你可以使用支持like的正则regexp_like

    5、查询内容包含通配符时:

      由于通配符的缘故,导致查询特殊字符“%”、“_”、“[”的语句无法正常实现,把特殊字符用“[]”括起来便可以正常查询。

      function sqlencode(str)
      str=replace(str,"[","[[]") '此句一定要在最前
      str=replace(str,"_","[_]")
      str=replace(str,"%","[%]")
      sqlencode=str
      end function
  • 相关阅读:
    POJ 1953 World Cup Noise
    POJ 1995 Raising Modulo Numbers (快速幂取余)
    poj 1256 Anagram
    POJ 1218 THE DRUNK JAILER
    POJ 1316 Self Numbers
    POJ 1663 Number Steps
    POJ 1664 放苹果
    如何查看DIV被设置什么CSS样式
    独行DIV自适应宽度布局CSS实例与扩大应用范围
    python 从入门到精通教程一:[1]Hello,world!
  • 原文地址:https://www.cnblogs.com/haimishasha/p/5517946.html
Copyright © 2020-2023  润新知