mysql中使用通配符进行过滤

news/2025/1/16 4:42:19 标签: mysql, 数据库

目录

1、使用通配符

(1)LIKE操作符

(2)百分号 % 通配符

(3)下划线 _ 通配符

2、使用通配符的技巧

3、小结


博主用的是mysql8 DBMS,附上示例资料:

百度网盘链接: https://pan.baidu.com/s/1XaWi3Y7hpXbs_uHq2cPI6Q

提取码: fpnx

1、使用通配符

(1)LIKE操作符

例如,怎样搜索产品名中包含文本 bean bag 的所有产品?用简单的比较操作符肯定不行,必须使用通配符。利用通配符,可以创建比较特定数据的搜索模式。

通配符(wildcard) :用来匹配值的一部分的特殊字符。

搜索模式(search pattern) :由字面值、通配符或两者组合构成的搜索条件。

  • 通配符本身实际上是 SQL WHERE 子句中有特殊含义的字符SQL 支持几种通配符。为在搜索子句中使用通配符,必须使用 LIKE 操作符LIKE指示 DBMS,后跟的搜索模式利用通配符匹配而不是简单的相等匹配进行比较。
  • 通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。

 谓词(predicate)

  • 从技术上说,LIKE是谓词而不是操作符。虽然最终的结果是相同的,但应该对此术语有所了解,以免在 SQL 文献或手册中遇到此术语时不知所云。

(2)百分号 % 通配符

%代表搜索模式中给定位置的 0 个、1 个或多个字符。

说明:区分大小写 :根据 DBMS 的不同及其配置,搜索可以是区分大小写的。但是mysql中默认是不区分大小写的

-- %代表搜索模式中给定位置的 0 个、1 个或多个字符。
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '%ton%';

-- 包括 Access 在内的许多 DBMS 都用空格来填补字段的内容。
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '%anvil';

-- 子句 WHERE prod_name LIKE '%'不会匹配产品名称为 NULL 的行。
-- 简单的解决办法是给搜索模式再增加一个%号:'F%y%'还匹配 y 之后的字符(或空格)。更好的解决办法是用函数去掉空格。
-- 但是mysql似乎不用空格填充剩余的长度
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '%';

-- 在针对邮箱应用场景十分实用
SELECT cust_name,cust_email
FROM customers
WHERE cust_email LIKE '%@coyote.com';

(3)下划线 _ 通配符

只匹配单个字符,而不是多个字符。

-- (_)下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '_eton%';

2、使用通配符的技巧

正如所见,SQL 的通配符很有用。但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。这里给出一些使用通配符时要记住的技巧。

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
  • 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

3、小结

  1. 进行文本字符串包含某字串的查找,需要用到通配符和LIKE操作符
  2. msyql支持的通配符有 % 和 _ ,%指定任意数量的字符,_只能指定一个字符
  3. 使用通配符耗时比一般搜索更长,不要过度和随便使用 

http://www.niftyadmin.cn/n/5824631.html

相关文章

使用el-tree根据切割规则切割数据生成树形结构

数据&#xff1a;dataList: [‘10000’, ‘10000001’, ‘10000001001’, ‘20000’, ‘20000002’] 需要的效果&#xff1a;1. 8-3切割的效果 2. 5-3-3切割的效果 <template><div id"app"><el-tree :data"treeData" :props"defa…

linux手动安装mysql5.7

一、下载mysql5.7 1、可以去官方网站下载mysql-5.7.24-linux-glibc2.12-x86_64.tar压缩包&#xff1a; https://downloads.mysql.com/archives/community/ 2、在线下载&#xff0c;使用wget命令&#xff0c;直接从官网下载到linux服务器上 wget https://downloads.mysql.co…

【微服务】面试 4、限流

微服务限流技术总结 一、微服务业务面试题引入 在微服务业务面试中&#xff0c;限流是重要考点&#xff0c;常与分布式事务、分布式服务接口幂等解决方案、分布式任务调度等一同被考查。面试官一般会询问项目中是否实施限流及具体做法&#xff0c;回答需涵盖限流原因、采用的方…

C# 中对 Task 中的异常进行捕获

以下是在 C# 中对 Task 中的异常进行捕获的几种常见方法&#xff1a; 方法一&#xff1a;使用 try-catch 语句 你可以使用 try-catch 语句来捕获 Task 中的异常&#xff0c;尤其是当你使用 await 关键字等待任务完成时。 using System; using System.Threading.Tasks;class …

AI知识-TF-IDF技术(Term Frequency-Inverse Document Frequency)

摘要 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;是一种常见的统计方法&#xff0c;用于评估一个词对于一个文档集或一个语料库中的其中一份文档的重要性。本文将全面阐述TF-IDF的通俗理解、技术原理、应用场景&#xff0c;并做以总结。 通俗理…

MYSQL学习笔记(一):准备数据和数据库的最基本命令

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇是入门准备数据和一些关于数据库的操作命令&#xff1b;虽然MYSQL命令很多&…

探索 AI 自动化编程:效率革命与未来教育的转型

随着人工智能技术的快速发展&#xff0c;AI 自动化编程工具正日益影响软件开发行业。从代码生成到项目管理&#xff0c;这些工具不仅加速了开发流程&#xff0c;还引发了对编程职业未来的深入思考。那么&#xff0c;AI 自动化编程的现状如何&#xff1f;它如何影响程序员的日常…

C++笔记:打包独立运行的exe(在静态库中使用MFC)

从window7到window11都默认安装有C依赖库&#xff0c;见如下 但是一些企业用的特殊window版本可能没有这个依赖库&#xff0c;导致Visual Studio生成的exe无法运行&#xff08;报缺失dll&#xff09;&#xff0c;就需要打包生成时使用静态库依赖。 共两步&#xff1a; 第一步…