在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. react hooks 全面转换攻略(三) 全局存储解决方案

    针对 react hooks 的新版本解决方案 一.redux维持原方案 若想要无缝使用原来的 redux,和其配套的中间件 promise,thunk,saga 等等的话 可以使用 redux-re ...

  2. .Net Core之Configuration

    ASP.NET CORE 中自动集成了应用配置,支持从以下 源 处获取配置键值对 命令行 环境变量 内存 文件配置 其中文件配置是我们最常用的方式,默认文件是.json的json格式文件,摒弃了以往. ...

  3. A joke about regular expression

    As the old computer science joke goes: “Let’s say you have a problem, andyou decide to solve it with ...

  4. STL之map基础知识

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

  5. redis持久化和分布式实现

    Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势. 本文使用的redis是3.2.1版本.下载后,文件如下 将文件解压到指 ...

  6. 416 Partition Equal Subset Sum 分割相同子集和

    详见:https://leetcode.com/problems/partition-equal-subset-sum/description/ C++: class Solution { publi ...

  7. 转】SparkSQL中的内置函数

    原博文来自于: http://blog.csdn.net/u012297062/article/details/52207934    感谢! 使用Spark SQL中的内置函数对数据进行分析,Spa ...

  8. 实现php间隔一段时间执行一次某段代码

    <?php ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  set_time_limit(0); // 执行时间为无限制,php ...

  9. listBox 搜索左右移动

    <td align="left" width="50%"> 查询:<asp:TextBox ID="SacffSearch" ...

  10. Elasticsearch--集群&吞吐量

    目录 高查询和高吞吐量 过滤器缓存 字段数据缓存和断路器 断路器 存储模块 索引缓冲和刷新率 索引刷新率 线程池的配置 一些通用的建议来配置高索引和查询吞吐量的集群 高查询和高吞吐量 过滤器缓存 过滤 ...