MySql模糊查询大全

这是一条我们在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. 通配符的分类

  1. “%” 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。
  2. “_” 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然,也可以like “陈____”,数量不限。
  3. 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 '网';

复制

– 模糊匹配含有“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 '__网%';

复制

– 模糊匹配含有“xx网x车xxx”的数据,如:“携程网约车客户端”

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

复制

注意事项:

  1. 注意大小写,在使用模糊匹配时,也就是匹配文本时,MySQL默认配置是不区分大小写的。当你使用别人的MySQL数据库时,要注意是否区分大小写,是否区分大小写取决于用户对MySQL的配置方式.如果是区分大小写,那么像Test12这样记录是不能被"test__"这样的匹配条件匹配的。
  2. 注意尾部空格,"%test"是不能匹配"test "这样的记录的。
  3. 注意NULL,%通配符可以匹配任意字符,但是
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL模糊查询是一种常用的查询方法,可以通过通配符%来进行匹配。除了%通配符,还有其他的通配符,如_下划线通配符,表示只能匹配单个字符。使用LIKE操作符可以指示MySQL使用通配符进行比较。注意,在使用模糊匹配时,MySQL默认是不区分大小写的,但这取决于用户对MySQL的配置方式。另外,需要注意的是,%通配符可以匹配任意字符,但不能匹配NULL值。\[1\]\[2\]\[3\] 如果你想在MySQL中进行模糊查询并带参数,可以使用LIKE操作符结合通配符来实现。例如,如果你想查询title_name字段中包含"test"的记录,可以使用以下语句: SELECT * FROM table_name WHERE title_name LIKE '%test%'; 这样可以匹配包含"test"的任意位置的记录。如果你想匹配以"test"开头的记录,可以使用以下语句: SELECT * FROM table_name WHERE title_name LIKE 'test%'; 如果你想匹配以"test"结尾的记录,可以使用以下语句: SELECT * FROM table_name WHERE title_name LIKE '%test'; 带参数的模糊查询可以根据具体需求进行灵活运用,通过合理使用通配符和LIKE操作符,可以实现更精确的查询。 #### 引用[.reference_title] - *1* *2* *3* [MySql模糊查询大全](https://blog.csdn.net/qq_46940224/article/details/125031647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值