MySQL模糊查询用法大全(正则、通配符、内置函数等)

网友投稿 765 2022-05-25

小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里

SELECT * from table where username like '%陈哈哈%' and hobby like '%牛逼'

这是一条我们在MySQL中常用到的模糊查询方法,通过通配符%来进行匹配,其实,这只是冰山一角,在MySQL中,支持模糊匹配的方法有很多,且各有各的优点。好了,今天让我带大家一起掀起MySQL的小裙子,看一看模糊查询下面还藏着多少鲜为人知的好东西。

目录

一、MySQL通配符模糊查询(%,_)

1-1. 通配符的分类

1-2. 通配符的使用

1) % 通配符:

2) _ 通配符:

1-3. 技巧与建议:

二、MySQL内置函数检索(locate,position,instr)

2-1. LOCATE()函数

2-2. POSITION()方法

2-3. INSTR()方法

三、MySQL基于regexp、rlike的正则匹配查询

3-1. regexp中的 OR : |

3-2. REGEXP中的正则匹配 : []

3-3. 字符类匹配(posix)

3-4. [:<:]和[:>:]

四、总结

一、MySQL通配符模糊查询(%,_)

1-1. 通配符的分类

"%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。

"_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然,也可以like "陈____",数量不限。

like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行

注意: 如果在使用like操作符时,后面没有使用通用匹配符(%或_),那么效果是和“=”一致的。在SQL执行优化时查询优化器将 like 默认为 “=”执行,SELECT * FROM movies WHERE movie_name like '唐伯虎';只能匹配movie_name=“唐伯虎”的结果,而不能匹配像“唐伯虎点秋香”或“唐伯虎点香烟”这样的结果.

1-2. 通配符的使用

1) % 通配符:

-- 模糊匹配含有“网”字的数据

SELECT * from app_info where appName like '%网%';

-- 模糊匹配以“网”字结尾的数据

SELECT * from app_info where appName like '%网';

-- 模糊匹配以“网”字开头的数据

SELECT * from app_info where appName like '网%';

-- 精准匹配,appName like '网' 等同于:appName = '网'

SELECT * from app_info where appName = '网'; -- 等同于 SELECT * from app_info where appName like '网';

MySQL模糊查询用法大全(正则、通配符、内置函数等)

-- 模糊匹配含有“xxx网xxx车xxx”的数据,如:"途途网约车司机端、网络约车平台"

SELECT * from app_info where appName like '%网%车%';

2) _ 通配符:

-- 查询以“网”为结尾的,长度为三个字的数据,如:"链家网",

SELECT * from app_info where appName like '__网';

注意:'%__网、__%网'  等同于 '%网'

-- 查询前三个字符为XX网,后面任意匹配,如:"城通网盘、模具网平台"

SELECT * from app_info where appName like '__网%';

MySQL

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于OBS搭建ownCloud私人云盘
下一篇:【女生节】圆周率小数点后37373737位中,“37”出现的次数是?
相关文章