使用mysql模糊查询主要点:LIKE关键字和这两个通配符配合使用:
_:任意一个字符,
%:任意0或多个字符。
那么我们立即上手吧!
一、使用LIKE和通配符 _
场景1:我要搜索一个名字,可我都忘记叫什么了,只知道是3个字符的,那怎么搜索呢(三个下划线 _)
代码示例
SELECT * FROM test WHERE name LIKE'___';
运行结果
(没错,一个下划线 _ 对应一个字符)
场景2:我要搜索一个名字总共是3个字符的,可是我只记得第一个字符是 c 后面的忘记了,那怎么搜索呢
代码示例
SELECT * FROM test WHERE name LIKE'c__';
运行结果
场景3:我要搜索一个名字总共是7个字符的,可是我只记得中间个字符 剽悍 前面和后面忘记了,那怎么搜索呢
SELECT * FROM test WHERE name LIKE'__剽悍___';
运行结果
场景4:我要搜索一个名字总共是7个字符的,可是我只记得最后两个个字符 种子 前面忘记了,那怎么搜索呢
代码示例
SELECT * FROM test WHERE name LIKE'_____种子';
运行结果
上面使用下划线 _ 可以发现一个核心三个点:
一个核心:
需要确定想要搜索的个数,否则查询不到(简单的说就是需要一个信息:知道字符个数)
三个点:
1.不管匹配字母还是中文都是可以的,因为""双引号代表字符嘛。
2.一个下划线 _ 对应一个字符,如果想搜索某个数据,那么 _ 与字符个数要一致。
3.匹配的时候如果还知道哪几位的是什么字符,可以让结果更精确。
二、使用LIKE和通配符 %
场景1:我要搜索一个名字只知道开头是一的字,后面是什么字,有多少个字符都不知道,那怎么搜索呢
代码示例
SELECT * FROM test WHERE name LIKE'一%';
运行结果
场景2:那反过来我要搜索一个名字只知道最后一个是子的字,前面是什么字,有多少个字符也都不知道,那怎么搜索呢
代码示例
SELECT * FROM test WHERE name LIKE'%子';
运行结果
场景3: 那来个折中的,我要搜索一个名字只知道中间其中一个是悍的字,前面是什么字,后面有多少个字符通通都不知道,那怎么搜索呢
代码示例
SELECT * FROM test WHERE name LIKE'%悍%';
(但是有一点就是这上面左右两个%%,中间一个字符【只要知道某一个字符,就可以匹配,不需要确定该字符是否在中间】)
运行结果
上面使用下划线 % 比较好理解,但是有一个关键点:只要知道其中某个一个字符就可以匹配的意长度的字符。(简单的说需要一个信息:知道某个字符)
三、 _ 和 % 的结合使用提高精确:
还是来个场景: 我要搜索一个名字,第三个字是剽字,前两个字不知道,后面有多少个字是什么当然也不知道,但是我们比前面所演示的知道的信息多一些,那么我们的查询结果也会更加精确!
代码示例
SELECT * FROM test WHERE name LIKE'__剽%';
最后:
模糊查询当然不只 % 和 _ 这两个,由于篇幅原因下次一起继续来实践和理解。数据库好玩的地方不只是结合后端语言,单独拿出来也有很多很有意思的事情,下次也一起发一篇用SQL符号提高我们平常搜索的效率。
那就点赞关注一下哦!
哈哈…不强求啦,只是你可以第一时间收到😜