模糊查询学习总结

模糊查询学习总结
   注:本博客为个人学习总结,有摘抄之处,不得转载。
     数据库的查询有完整查询和模糊查询。
     完整查询为:
        SELECT 字段 FROM 表 WHERE 某字段='xxxx';

     例如:SELECT * FROM USER  WHERE USER_NAME='李洪杰';
   
     一般的模糊查询语句如下:
        SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件
    其中关于条件,SQL提供了四种匹配模式:
    1.%:表示0个或多个字符,可以匹配任意类型和长度的字符,有些情况下若是中文,用两个百分号(%%)表示,
               例如:SELECT * FROM  'user' WHERE user_name LIKE ' %雯';
                           将会把'刘雯雯','吉雯雯','顾丽雯'  "雯" 等带记录全找出来。
               例如:SELECT * FROM 'user' WHERE user_name LIKE '李%',
                           将会把'李洪杰','李承德','李' 等记录找出来。即:姓'李'的记录找出来。

               例如:SELECT * FROM 'user' WHERE user_name LIKE '%三%';
                           将会把user_name为:’张三‘,"三脚猫","唐三藏"等等有"三"的记录全找出来。
               另外,如果需要找出user_name 中既有"三"又有"猫"的记录,就用and条件;
                          SELECT * FROM 'user' WHERE user_name LIKE '%三%' AND user_name LIKE "%猫%";
                如果使用 : SELECT * FROM 'user' WHERE user_name LIKE "%三%猫%";
                能搜索出'三脚猫",但不能搜索出符合条件的"张猫三"。

   2. _   : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度,注意:这样就可以来做系统中左侧树的异步加载多层菜单,实例见例子
                 比如:SELECT * FROM 'user'  WHERE user_name LIKE '_三_';
                 只找出 “唐三藏”这样的user_name 为三个字且中间一个字是"三"的。
                 比如:SELECT * FROM 'user' WHERE user_name LIKE '李__';
                 能找出“李洪杰”,"李承德"这样的user_name 为三个字且以"李"开头的。
      至此,由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用
                  REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE )
  3. [ ]  :表示括号内所列字符中的一个。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
                 比如:SELECT * FROM 'user'  WHRE
 
 

你可能感兴趣的:(数据库,sql,模糊查询,SQL)