前言
欢迎来到我的博客
个人主页:北岭敲键盘的荒漠猫-优快云博客
本文主要整理mysql数据库中模糊搜索的相关知识点
模糊匹配符
符号 | 作用 |
---|---|
% | 多个随便字符 |
_ | 单个随便字符 |
like | 模糊匹配时用like而不是= |
SELECT [内容] FROM [表名] WHERE [列名] like [含有模糊匹配符的内容];
模糊匹配案例
表内容:
查询案例如下:
SELECT * FROM tab WHERE user like 'zh%gs_n';
运行结果:
escape关键字
作用:
当我们的查询内容中包含了%,_,但是我们写进去他会以为这是模糊匹配符号。
所以我们可以用escape关键字来规定一个符号作为转义字符。
在模糊匹配符号前面加一个就可以了。
小案例演示:
我们用模糊匹配匹配%%这个东西
SELECT * FROM tab WHERE `user` LIKE '/%_' ESCAPE '/';
我们采用了'/%_'
设置了/为转义符号,所以后面的%就是一个字符,而不是模糊匹配。
但是_是模糊匹配字符,而且没有转义符号,所以用来匹配了%%后面的这个%.
高效化函数搜索
LOCATE()
语法:
LOCATE(substr,str[,pos])
案例:
//查找字符串'world'在'hello world'中的位置。
SELECT LOCATE('world', 'hello world');
//从第 5 个字符开始查找'world'在'hello world'中的位置
SELECT LOCATE('world', 'hello world', 5);
POSITION()
函数
语法:
position(substr IN str)
案例演示:
//查找字符串'abc'在'123abc456'中的位置。
SELECT POSITION('abc' IN '123abc456');
INSTR()
函数
语法:
INSTR(str,substr)
案例演示:
SELECT INSTR('123abc456', 'abc');