在mysql数据库中,当我们需要模糊查询的时候 ,我们会使用到通配符。

首先我们来了解一下2个概念,一个是操作符,一个是通配符。

操作符

like就是SQL语句中的操作符,它的作用是指示在SQL语句后面的搜索模式是利用通配符而不是直接相等匹配进行比较。

注意:如果使用like操作符时没有使用通配符,那么效果是和等号是一致的。

SELECT id,title FROM table WHERE title like '张三';

这种写法就只能匹配张三的记录,而不能匹配像张三是个好人这样的记录。

通配符

%(百分号),_(下划线)就是通配符,%表示任何字符出现任意次数(可以是0次),_表示单个字符,用户如下:

 SELECT id,title FROM table WHERE title like '张三%';
SELECT id,title FROM table WHERE title like '%张三';
SELECT id,title FROM table WHERE title like '%张三%';

1表示匹配以张三开始的记录,2表示匹配以张三结束的记录,3表示匹配含有张三的记录。

 SELECT id,title FROM table WHERE title like '张三_';
SELECT id,title FROM table WHERE title like '__张三';

1表示匹配像张三好这样的记录,2表示匹配像你好张三这样的记录。

使用注意

注意大小写,在使用模糊匹配时,也就是匹配文本时,mysql是可能区分大小的,也可能是不区分大小写的,这个结果是取决于用户对MySQL的配置方式。

注意尾部空格。

注意NULL,%可以匹配任意字符,但是不能匹配NULL。

合理使用

MySQL的通配符很有用,但这种功能是有代价的,通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长,这里给出一些使用通配符要记住的技巧。

不要过度使用通配符,如果其他操作符能达到相同的目的,应该 使用其他操作符。

在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处,把通配符置于搜索模式的开始处,搜索起 来是最慢的。

仔细注意通配符的位置,如果放错地方,可能不会返回想要的数。

mysql通配符进行模糊查询的更多相关文章

  1. MySQL中的模糊查询和通配符转义

    MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或RLIKE/NOT RLIKE,它们是同义词). 第一种是标准的SQL模式匹配.它有2 ...

  2. mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

  3. PHP MYSQL登陆和模糊查询

    PHP MYSQL登陆和模糊查询   PHP版本 5.5.12    MYSQL版本 5.6.17  Apache 2.4.9 用的wampserver 一.PHPMYSQL实现登陆:  一共含有两个 ...

  4. MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果

    注:MySQL中的模糊查询 like 和 Oracle中的 instr() 函数有同样的查询效果: 如下所示: MySQL: select * from tableName where name li ...

  5. (四)MySQL条件查询(通配符、模糊查询)、排序查询、分组查询(单行、分组函数)

    一.条件查询 1.含义:前面学的基础查询可以查询一个或多个字段,如果需要的数据仅仅是其中的某一行或多行就用到了条件查询. 2.语法:(序号表示语句执行顺序) SELECT 字段名 ③ FROM 表名 ...

  6. mysql进阶(六)模糊查询的四种用法介绍

    mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...

  7. mysql通配符_,%查询

    模糊查询 在使用模糊查询的时候,mysql使用的是最左原则,所以模糊查询语句: select * from sys_user where user_name like '#{userName}%' 我 ...

  8. 关于sql、mysql语句的模糊查询分类与详解,包括基本用法和mapper.xml文件里插入写法

    欢迎猿类加qq:2318645572,共同学习进步 实际例子: ssm框架:service业务层->dao层->mappers.xml->junit/test测试 1:service ...

  9. 使用mybatis从mysql里进行模糊查询的编码问题

    关于这个问题,记录下我的解决方法,希望对有同样困惑的朋友,有所帮助. 问题描述: 我在做mybatis从mysql里模糊查询时,如果模糊的关键词是字母的话,可以查出来.如果模糊的关键词是汉字的话,查不 ...

随机推荐

  1. 适用于PHP初学者的学习线路和建议

    [导读] 这篇文章是围绕PHP的学习问题,之前介绍过<重磅资料!Github上的PHP资源汇总大全><深入探讨PHP类的封装与继承><PHP的学习规划建议>等对PH ...

  2. unsign 字段相减出现负数解决方法

    在项目中做数据统计的时候需要用到几个字段相减得到想要的值,但是因为字段都是无符号,相减出现mysql 错误 BINGINT UNSIGNED VALUE ..  在c语言中两个无符号相减值为负数,该值 ...

  3. 部分安卓微信浏览器无法触发onchange事件

    这是安卓微信的一个遗留问题. 解决办法很简单: 将input标签 <input type=“file" name="image" accept="imag ...

  4. centos 7 添加普通用户

    adduser username username 是你要创建的用户名 passwd username 创建密码,输入个稍微复杂的 usermod -a -G wheel username 将用户加入 ...

  5. ios手机Safari本地服务连不上

    问题: 今天在本地起服务准备测下ios手机端页面,结果发现:页面可以打开,但是登录不上. 用alert定位了下,await fn() 报错被try()catch(){}捕获了... 原因: 该机子不支 ...

  6. JAVA 毕业设计 辅导

    JAVA 毕业设计 辅导   =======================================================  

  7. [POI2008]KUP

    Description 给一个\(n\times n\)的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k] Input 输入k n(n<2000)和一个\(n\times ...

  8. Poj 2289 Jamie's Contact Groups (二分+二分图多重匹配)

    题目链接: Poj 2289 Jamie's Contact Groups 题目描述: 给出n个人的名单和每个人可以被分到的组,问将n个人分到m个组内,并且人数最多的组人数要尽量少,问人数最多的组有多 ...

  9. Xcode配置SVN详细步骤

    转载:http://blog.csdn.net/weiqubo/article/details/8288635   Xcode 默认自带Git 与 SVN,我们本篇介绍SVN的详细配置步骤如下: 1. ...

  10. jmeter(三)参数传递

    [一]参数化 录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不 ...