查询语句 like 模糊查询

前言

建表语句在最后

  • like 应该是最常用的查询条件了
  • 必须掌握地!

like 的语法格式

LIKE  '字符串'
NOT LIKE  '字符串'
  • NOT :取反,不满足指定字符串的匹配
  • 字符串:可以是精确的字符串,也可以是包含通配符的字符串
  • LIKE 支持 % 和 _ 两个通配符

确认测试表里有什么数据,方便后面的例子做对比

% 通配符查询的例子

  • % 应该是最常用的通配符了,它代表任意长度的字符串,包括0
  • 比如:a%b 表示以字母 a 开头,以字母 b 结尾的任意长度的字符串;改字符串可以代表 ab,acb,accb,agdsbd 等字符串

查询 username 包含 ng 的记录

SELECT * FROM test_table WHERE username LIKE '%ng%';

查询username字段开头不为test且department字段等于aooo的记录

SELECT * FROM test_table WHERE username NOT LIKE 'test%' AND department = 'aooo';

知识点

匹配的字符串必须加单引号或上引号 LIKE ‘%test%’

_ 通配符查询的例子

  • _ 只能代表单个字符,字符的长度不能等于0,即字符长度必须等于1;相对于 % 来说 - 没那么常用
  • 比如 a_b 可以代表 abb、acb、atb 等字符串

查询username字段test开头且后面只跟一个字符结尾的记录

SELECT * FROM test_table WHERE username LIKE 'test_';

like 区分大小写的例子

  • 默认情况下,like 匹配的字符串是不区分大小写的;like “test1” 和 like “TEST1” 匹配的结果是一样的
  • 如果需要区分大小写,需要加入 binary 关键字

不会返回任何记录,test1和test2不会被匹配到

select * from yyTest where username like binary "TEST_";

使用转义符的例子

  • 如果查询的字符串包含%,可以使用 \ 转义符
  • 实际场景:搜索功能,搜索框只输入%看是否返回所有记录,如果是的话证明没有做转义可以提个优化项哦!

转义符+通配符联合使用的栗子

SELECT * FROM test_table WHERE username LIKE '%\%';

使用通配符的注意点

  • 注意大小写:不加binary关键字的话,大小写是不敏感的
  • 注意头部、尾部多余的空格: " test% " 是不会匹配到“test1”的
  • 注意NULL:通配符是不能匹配到字段为NULL的记录的
  • 不要过度使用通配符:因为Mysql对通配符的处理速度会比其他操作花费更长的时间
  • 在确定使用通配符后:除非绝对有必要,否则**不要把它们用在字符串的开始处,**把通配符置于搜索模式的开始处,搜索起来是最慢的。
CREATE TABLE `test_table` (`id` int(10) NOT NULL,`sex` varchar(20) DEFAULT NULL,`username` varchar(255) DEFAULT NULL,`department` varchar(20) DEFAULT NULL,`age` int(10) DEFAULT NULL,`height` int(10) DEFAULT NULL,`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (2, '男', 'lisan', 'aooo', 23, 170, '2021-10-14 19:30:42');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (3, '女', 'wangsi', 'boooo', 14, 185, '2021-10-14 18:52:03');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (4, '男', 'zhangswu', 'cfgg', 21, 180, '2021-10-14 18:52:11');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (5, '女', 'testnamet', 'dfgf', 18, 160, '2021-10-14 19:24:07');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (6, '女', 'guoda', 'gdfg', 13, 165, '2021-10-14 18:52:14');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (7, '男', 'chener', 'aooo', 19, 162, '2021-10-14 18:52:08');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (8, '男', 'test1', 'ddgd', 20, 178, '2021-10-14 19:43:09');
INSERT INTO `test`.`test_table` (`id`, `sex`, `username`, `department`, `age`, `height`, `date`) VALUES (21, '男', 'test2', 'aooo', 18, 175, '2021-10-14 19:43:12');

查询语句 like 模糊查询相关推荐

  1. SQL简单的查询语句之模糊查询

    模糊查询 在sql中,可以根据某些特定的条件进行模糊查询,比方说要查找咦某个字母开头的昵称,或者一组类似的数据等.我们用字段like表示相似,来进行模糊查询. 在模糊查询中,%表示任意字符,_表示一个 ...

  2. MySQL 数据库 like 语句通配符模糊查询小结

    MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)--MySQL 数据库 like 语句通配 ...

  3. 在JDBC中实现SQL语句的模糊查询

    在JDBC中实现SQL语句的模糊查询 在大多数情况下我们可以在JDBC中写入sql语句通过占位符的方式来直接查询,但是如果要进行模糊查询,需要转义字符才能够正常查询. sql语句: select * ...

  4. java中sql模糊查询_模糊查询的sql语句(java模糊查询sql语句)

    模糊查询的sql语句(java模糊查询sql语句) 2020-07-24 11:06:02 共10个回答 假设表名为product,商品名为name,简界为remark.则可如下写:select[na ...

  5. Java的SQL语句以及模糊查询

    九十四.数据库--sql语言 sql:不区分大小写,用分号结束 DDL:数据定义语言:针对于数据库来说的语言 1.查询当前所有的数据库:SHOW DATABASES;2.新建一个数据库:CREATE ...

  6. php中id如何与删除关联,ThinkPHP查询语句与关联查询用法实例

    这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下 本文实例讲述了ThinkPHP查询语句与关联查询 ...

  7. java oracle分页查询语句_Oracle分页查询语句的写法(转)

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...

  8. MYSQL查询语句2——子查询

    子查询 一.为什么会使用子查询 二.什么是子查询 三.子查询的具体使用+实例 1.WHERE子句后使用子查询 2.FROM子句后使用子查询 一.为什么会使用子查询 虽然可以通过连接查询来实现多表查询数 ...

  9. MySQL 条件查询(多条件,模糊查询,范围查询,空值查询),分组查询,分组过滤

    WHERE 条件查询 WHERE关键字用指定的条件从表中查询数据. 语法格式: WHERE 查询条件 条件查询: 有比较运算和逻辑运算的查询条件. 带有BETWEEN AND 关键字的查询条件. 配合 ...

最新文章

  1. 13.Java核心技术—内部类
  2. kafka0.9 java commit_kafka提交offset失败
  3. nginx+fastcgi+c/c++搭建高性能Web框架
  4. 内存泄漏 和 内存溢出
  5. python 获取昨天的日期_利用Python来实现报表的自动发送,解放你时间去做更有意思的事情...
  6. 高级转录组分析和R语言数据可视化课程全部转为视频课
  7. Window phone7 修改程序语言
  8. java 加载java文件_如何用JAVA实现加载一个文件?
  9. 快速去除PDF的打开密码和限制(四种方法)
  10. 数据库知识点汇总(最全!!)
  11. windows server 2008 关机后安装自动更新,反复启动,不能进入系统
  12. cursor图标自定义
  13. Android color颜色-色号总结
  14. python写贪吃蛇游戏
  15. 远程办公何时了,网络打洞帮你搞
  16. c语言rewind函数作用,C 文件 rewind() 函数
  17. 别害怕,C++容器的迭代器其实好用又不难
  18. Forth(背包!动态规则)
  19. 【paper笔记】Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
  20. computed,watch

热门文章

  1. C语言反三角函数的实现
  2. 在线人民币金额大小写转换,助力会计工作
  3. vue html实体空格无效
  4. 低复杂度Bayer图像色彩重建算法
  5. 1949: 没名字的题
  6. MX-Yolov3本地训练模型的安装和使用
  7. SofGAN:更逼真可控的肖像生成器
  8. 2021年美容师(初级)新版试题及美容师(初级)考试总结
  9. 百度网盘下载器百度云管家 v6.8.4.1 绿色便携版
  10. 黑客从入门到入狱教程