sql怎样用LIKE进行简单的模糊查询 sql模糊查询的基础语句用法

sql中模糊查询主要依赖like操作符配合通配符%(代表任意长度的任意字符)和\_(代表单个任意字符),用于实现非精确匹配;2. 常见用法包括:’张%’查找以“张”开头的字符串,’%三’查找以“三”结尾的字符串,’%限量版%’查找包含“限量版”的字符串,’\_小\_’查找三个字且中间为“小”的字符串;3. 模糊匹配在用户搜索、数据清洗、报告统计和异常识别中至关重要,能应对输入不规范或数据变体问题;4. 通配符%可匹配零到多个字符,适用于模糊和包含场景,而\_仅匹配一个字符,适用于固定长度或特定位置的精确匹配;5. not like用于排除符合特定模式的记录,常用于排除测试数据、识别格式异常(如邮箱、电话号码)、筛选不包含关键词的内容以及结合escape排除含通配符字面值的数据,提升了数据过滤的灵活性。

sql怎样用LIKE进行简单的模糊查询 sql模糊查询的基础语句用法

SQL中,要进行简单的模糊查询,我们主要依赖

LIKE

操作符。它的核心在于通过模式匹配来筛选字符串数据,而不是进行精确的比对。这就像你在一个杂乱的文档堆里找东西,不记得确切的名字,只记得几个关键词或开头结尾,

LIKE

就是帮你做这件事的工具。它主要配合两个通配符使用:百分号(

%

)代表任意长度(包括零个)的任意字符序列,而下划线(

_

)则代表一个且仅一个任意字符。

SQL模糊查询的基础语句用法,说白了,就是把

LIKE

操作符放到

WHERE

子句后面,然后跟上你想要匹配的模式字符串。这个模式字符串里,通配符就是我们的魔法棒。

最常见的几种用法:

查找以特定字符开头的记录:如果你想找所有名字以“张”开头的用户,你可以这么写:

SELECT *FROM UsersWHERE UserName LIKE '张%';

这里

'张%'

的意思是“以‘张’字开头,后面跟着任意数量的任意字符”。

查找以特定字符结尾的记录:要是你只记得某个名字的最后一个字是“三”,那可以这样:

SELECT *FROM ProductsWHERE ProductName LIKE '%三';

'%三'

表示“前面可以是任意数量的任意字符,但必须以‘三’字结尾”。

查找包含特定字符序列的记录:这是最常用的,比如你想找所有描述里包含“限量版”的产品:

SELECT *FROM DescriptionsWHERE ProductDescription LIKE '%限量版%';

'%限量版%'

意味着“无论前面有什么,后面有什么,只要中间包含‘限量版’就行”。

查找特定位置的字符:有时候我们对长度有要求,或者知道某个位置的字符是什么。比如,我想找所有名字是三个字,且中间那个字是“小”的:

SELECT *FROM EmployeesWHERE EmployeeName LIKE '_小_';

'_小_'

表示“第一个字符是任意一个字符,第二个字符是‘小’,第三个字符是任意一个字符”。这在处理一些固定格式的编码或者特定长度的字段时特别有用。

理解了这几个基础模式,基本上就能应付日常大部分的模糊查询需求了。

为什么在数据查询中模糊匹配如此重要?它能解决哪些实际问题?

在我看来,模糊匹配在数据查询中简直是不可或缺的。想想看,我们的数据世界从来都不是完美无缺的,用户输入可能五花八门,数据录入也难免有疏漏。如果只有精确匹配,那很多时候我们根本就找不到想要的信息。

它能解决的实际问题太多了:

TextCortex TextCortex

AI写作能手,在几秒钟内创建内容。

TextCortex 62 查看详情 TextCortex 用户搜索体验:当用户在电商网站搜索“手机壳”时,他可能输入“手机壳”、“手机保护套”、“手机套”,甚至“IPHONE壳”。如果只支持精确匹配,那用户体验会非常糟糕。模糊查询能让系统理解用户的意图,即使输入不完全精确也能返回相关结果。数据清洗与分析:我在处理一些历史数据时,经常遇到“张三”、“张叁”、“张三丰”这样的情况。如果想找出所有“张三”相关的人,精确匹配肯定不行。利用

LIKE '张三%'

或者

LIKE '%张三%'

,就能把这些变体都找出来,方便后续的清洗和统一。报告与统计:需要统计所有“销售部”或“市场部”的员工,但部门名称可能写成“销售部(北京)”、“销售一部”、“市场部-华南区”等。一个

LIKE '%销售部%' OR LIKE '%市场部%'

就能轻松搞定。识别异常或模式:比如,你想找出所有邮箱地址不符合常规格式(比如没有

@

符号)的用户,或者所有电话号码不是11位的记录。模糊查询配合

NOT LIKE

就能派上用场。

可以说,模糊匹配是让数据“活”起来的关键,它让查询变得更加灵活和智能,适应了现实世界中数据固有的不确定性。

LIKE

操作符中的通配符

%

_

,它们在实际使用中有何异同?

%

_

这两个通配符,虽然都是用来做模式匹配的,但它们的“权力”和“范围”是截然不同的,理解它们的不同,能让你写出更精确、更符合需求的查询语句。

百分号(

%

含义:代表零个、一个或多个任意字符。它的特点是“贪婪”且“灵活”。何时用:当你只知道字符串的开头或结尾,想匹配所有可能性时(如

'ABC%'

'%XYZ'

)。当你只知道字符串中包含某个子串,而对子串前后的内容长度不确定时(如

'%KEYWORD%'

)。你甚至可以只用一个

'%'

来匹配所有非NULL的字符串,虽然这没什么实际意义,但说明了它的“全能性”。例子

LIKE '王%'

:能匹配“王”、“王小明”、“王大锤”。

LIKE '%手机'

:能匹配“华为手机”、“我的手机”。

LIKE '%苹果%'

:能匹配“苹果手机”、“我爱吃苹果派”。

下划线(

_

含义:代表一个且仅一个任意字符。它的特点是“精准”且“固定”。何时用:当你对字符串的长度有严格要求,或者你知道某个位置的字符是任意的,但其他位置是固定的时。在处理一些编码、序列号或者固定格式的短文本时非常有用。例子

LIKE '张__'

:只匹配三个字的,且第一个字是“张”的名字,如“张三丰”、“张小明”,但不会匹配“张”或“张大炮”。

LIKE 'A_C'

:只匹配三个字符,开头是A,结尾是C的,如“ABC”、“ADC”、“A9C”。

LIKE '_____'

:匹配任意五个字符的字符串。

异同总结

相同点:都是用于

LIKE

操作符的通配符,都匹配任意字符。不同点

%

匹配零到多个字符,

_

匹配一个字符。这是最核心的区别

%

更适合“模糊”和“包含”的场景,

_

更适合“固定长度”和“特定位置”的场景。

实际使用中,我通常会根据对匹配精度的要求来选择。如果只是想看看有没有包含某个词,

%

是首选;如果我知道某个字段是固定格式,比如产品编码是

XXX-YYY-ZZZ

,而我只记得

XXX

ZZZ

,那

LIKE 'XXX-%-ZZZ'

可能就更合适,或者如果我知道中间是3个字符,

LIKE 'XXX-___-ZZZ'

则更精确。

NOT LIKE

的用途是什么?何时会用到它?

NOT LIKE

,顾名思义,就是

LIKE

的反面,它用于查找那些不符合指定模式的字符串。这在数据过滤、异常数据识别或者排除特定类型信息时,简直是神来之笔。

我个人在以下几种场景中经常用到

NOT LIKE

排除特定类型的记录

比如,我想查看所有产品中,除了“测试”或“演示”用的产品以外的真实商品数据。

SELECT *FROM ProductsWHERE ProductName NOT LIKE '%测试%' AND ProductName NOT LIKE '%演示%';

或者,我想列出所有部门,但不想看到“临时部门”或“已撤销部门”:

SELECT *FROM DepartmentsWHERE DeptName NOT LIKE '%临时%' AND DeptName NOT LIKE '%撤销%';

数据质量检查与异常识别

这是

NOT LIKE

非常实用的一个地方。比如,我想找出所有邮箱地址格式不规范(比如没有

@

符号,或者没有

.com

等后缀)的用户,以便进行数据清洗。

SELECT UserID, EmailFROM UsersWHERE Email NOT LIKE '%@%' OR Email NOT LIKE '%.%'; -- 简单示例,实际邮箱校验更复杂

再比如,我想找出所有电话号码不是以“1”开头的记录,这可能意味着数据录入错误。

SELECT CustomerID, PhoneNumberFROM CustomersWHERE PhoneNumber NOT LIKE '1%';

筛选不包含特定关键词的内容

在内容管理系统中,你可能想找出所有文章中,不包含某个敏感词或已过时术语的。

SELECT ArticleID, TitleFROM ArticlesWHERE Content NOT LIKE '%敏感词%' AND Content NOT LIKE '%过时术语%';

处理包含通配符本身的数据

如果你的数据中本身就包含

%

_

字符,而你想把它们作为字面值来匹配,就需要用到

ESCAPE

子句。但如果你想排除那些包含这些字面值的记录,

NOT LIKE

就配合

ESCAPE

一起用。例如,查找不包含字面值

50%

的字符串:

SELECT ItemCodeFROM InventoryWHERE ItemCode NOT LIKE '%50\%%' ESCAPE '\';

这里

\

是转义字符,告诉SQL

%

不是通配符,而是要匹配的字面值。

总的来说,

NOT LIKE

LIKE

的有力补充,它让我们可以从“找什么”转变为“排除什么”,在数据筛选和质量控制上提供了极大的灵活性。

以上就是sql怎样用LIKE进行简单的模糊查询 sql模糊查询的基础语句用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/967339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在CSS中实现浮动元素动画_transition transform结合
上一篇 2025年12月1日 19:40:43
使用BiConsumer接口重构具有相同操作但不同输入类型的方法
下一篇 2025年12月1日 19:40:45

相关推荐

  • win11管理员权限不够怎么办_win11管理员权限不足解决方法

    首先以管理员身份运行程序,其次修改文件权限或启用Administrator账户,最后通过调整UAC设置或注册表禁用UAC来解决权限不足问题。 如果您在使用Windows 11时尝试执行某些系统级操作,但提示权限不足或被拒绝,即使当前账户为管理员,也可能是由于用户账户控制(UAC)或特定文件/程序的权…

    2026年9月21日
    100
  • Java Executors类提供哪些线程池方法

    Executors类提供创建线程池的静态方法:newFixedThreadPool创建固定大小线程池,适用于稳定负载;newCachedThreadPool创建可缓存线程池,适合短期异步任务;newSingleThreadExecutor创建单线程池,保证任务顺序执行;newScheduledThr…

    2026年9月21日
    200
  • Windows&Linux双系统安装流程

    Windows&Linux双系统安装流程Windows&Linux双系统安装流程Windows&Linux双系统安装流程Windows&Linux双系统安装流程

    大家好,很高兴再次见到大家,我是你们的朋友全栈君。 注意事项:在安装Windows与Linux双系统时,建议先安装Windows系统,否则可能会导致grub引导被覆盖的问题。 Windows 10系统安装 制作启动盘(优启通链接)https://www.php.cn/link/219b87ff108…

    2026年9月21日 用户投稿
    200
  • VSCode中怎么使用REM_VSCode移动端REM布局编写与换算教程

    答案:REM_VSCode插件可自动将像素转换为REM,需配置rootFontSize和precision,支持自动与手动转换,确保与html的font-size一致,配合media query适配不同屏幕,若插件异常可检查配置、重启或重装,替代工具有postcss-pxtorem、在线转换工具及浏…

    2026年9月21日
    000
  • 小红书发视频比例是多少?小红书视频是16比9还是4比3

    在当今社交媒体蓬勃发展的背景下,人们通过各种平台获取信息、娱乐和交流。其中,小红书作为一个以短视频和图文笔记为主的社交电商平台,吸引了大量用户群体。本文将围绕小红书平台上视频内容的占比情况进行分析,并探讨其背后的原因及未来发展趋势。 一、小红书视频内容占比现状 根据相关数据统计,目前小红书平台上的视…

    2026年9月21日
    200
  • UC浏览器如何开启省流模式_UC浏览器开启省流模式方法

    开启省流模式可减少UC浏览器流量消耗,通过设置菜单、首页快捷入口或搜索功能三种方式均可启用,系统会压缩网页内容以节省资源。 如果您在使用UC浏览器时希望减少数据流量消耗,尤其是在移动网络环境下,可以通过开启省流模式来优化网页加载方式。该功能会压缩页面内容,降低图片质量和资源体积,从而节省流量。 本文…

    2026年9月21日
    100
  • MySQL性能模式监控资源_MySQL瓶颈定位精确工具

    MySQL性能模式监控资源_MySQL瓶颈定位精确工具MySQL性能模式监控资源_MySQL瓶颈定位精确工具MySQL性能模式监控资源_MySQL瓶颈定位精确工具MySQL性能模式监控资源_MySQL瓶颈定位精确工具

    mysql性能模式通过事件记录精准定位瓶颈,核心步骤包括:1.启用并配置performance schema,选择性开启消费者和仪器;2.监控等待事件、sql语句、阶段、i/o、内存及锁等关键指标;3.分析events_waits_summary_global_by_event_name等表识别资源…

    2026年9月21日 用户投稿
    000
  • 苹果13如何扫码连接wifi

    准备工作 首先,确认你的苹果13设备已经开机并处于正常使用状态。接着,找到你希望连接的Wi-Fi网络,并获取该网络对应的二维码。这类二维码通常可以在路由器的管理界面中生成,不同品牌和型号的路由器操作方式可能略有差异,但一般在“无线设置”或“网络配置”菜单中都能找到“生成二维码”或“二维码分享”等相关…

    2026年9月21日
    000
  • 三星在电视端首发Perplexity AI应用程序,带来更具创新性AI体验

    10 月 23 日消息,三星电子于美国当地时间 21 日宣布,率先在电视终端推出 perplexity ai 应用程序,为三星电视用户带来更富创新的 ai 使用体验。 借助该应用程序,用户在安排日常生活、查找特定影视内容、创建梦幻体育联赛阵容或策划万圣节活动等场景中,可获得 AI 以卡片式回复框形式…

    2026年9月21日
    400
  • 帕鲁高管回应《幻兽帕鲁:帕鲁农场》疑似碰瓷《宝可梦 pokopia》:乱讲阴谋论

    帕鲁高管回应《幻兽帕鲁:帕鲁农场》疑似碰瓷《宝可梦 pokopia》:乱讲阴谋论帕鲁高管回应《幻兽帕鲁:帕鲁农场》疑似碰瓷《宝可梦 pokopia》:乱讲阴谋论帕鲁高管回应《幻兽帕鲁:帕鲁农场》疑似碰瓷《宝可梦 pokopia》:乱讲阴谋论帕鲁高管回应《幻兽帕鲁:帕鲁农场》疑似碰瓷《宝可梦 pokopia》:乱讲阴谋论

    在不久前的任天堂直面会上,官方公布了一款宝可梦ip的衍生新作——《宝可梦 pokopia》。这款作品让玩家化身一只能够变身成人类训练家的百变怪,主打种田与建造玩法,属于模拟经营类游戏。 视频欣赏: 无独有偶,几天后,《幻兽帕鲁》的开发商PocketPair也正式公布了他们的全新衍生作《幻兽帕鲁:帕鲁…

    2026年9月21日 用户投稿
    000
  • 如何使用mysql设计客户信息管理项目

    答案:设计客户信息管理系统需先明确功能需求,再合理规划数据库结构。1. 根据客户需求划分模块,包括客户基本信息、分类、状态、跟进记录等;2. 创建核心表如customers、company_info、follow_ups和users,确保字段完整且符合业务逻辑;3. 在关键字段上建立索引以提升查询效…

    2026年9月21日
    400
  • Windows 10功能更新1909版错误0xc19001e1怎么解决?

    0xc19001e1错误可通过禁用第三方安全软件、清理磁盘空间、运行Windows更新疑难解答及重置更新组件解决。首先卸载非微软安全软件并重启;确保C盘有20GB以上可用空间,通过设置清理临时文件;使用内置疑难解答工具修复更新问题;最后以管理员身份运行命令提示符,停止wuauserv、cryptSv…

    2026年9月21日
    000
  • windows怎么格式化硬盘_windows硬盘格式化方法

    格式化硬盘可通过四种方法完成:1. 使用磁盘管理工具,进入“此电脑”→“管理”→“磁盘管理”,右键目标分区选择“格式化”,设置文件系统及是否快速格式化;2. 通过文件资源管理器,在“此电脑”中右键驱动器选择“格式化”,选择NTFS等文件系统并开始操作;3. 使用命令提示符运行diskpart工具,依…

    2026年9月21日
    100
  • 夸克Ai搜索如何设置默认_夸克Ai搜索默认引擎更改

    首先在夸克APP中将默认搜索引擎设为AI引擎,再开启相关AI功能开关以启用AI搜索服务。具体步骤:1、打开夸克APP,点击右下角菜单进入设置;2、选择“通用”选项,点击“搜索引擎”;3、选择“AI引擎”或“夸克AI搜索”作为默认服务;4、返回主界面测试搜索关键词,确认AI结果是否展示;5、进入“AI…

    2026年9月21日
    400
  • 从豆瓣中怎么看纪录片APP_纪录片推荐与跳转方法

    可通过豆瓣App搜索纪录片并进入条目页面查看评分、简介及播放平台,点击“播放”区域的平台图标即可跳转至腾讯视频、爱奇艺或B站等APP观看,未安装时则跳转应用商店下载;同时可使用“想看”功能或创建影单集中管理收藏,便于后续统一查看与跳转播放。 如果您在浏览豆瓣时,希望查找优质的纪录片并了解如何通过相关…

    2026年9月21日
    000
  • Laravel中的Blade模板引擎基础用法

    blade模板引擎在laravel中用于简化视图开发。具体使用方法如下:1.输出变量:{{ $variable }}。2.条件判断:@if、@else、@elseif。3.循环:@foreach。4.模板继承:@extends、@section、@yield。blade让视图代码更简洁易读,但需注意…

    2026年9月21日
    200
  • Windows10重置此电脑卡住不动了怎么办_Windows10重置电脑卡住修复方法

    重置电脑卡住时,先等待2-4小时观察硬盘灯是否闪烁,确认系统是否仍在运行;若无响应,可尝试断开网络避免更新下载、调整BIOS关闭Secure Boot并启用Legacy模式;或使用Windows安装U盘启动,进入修复模式执行启动修复、chkdsk磁盘检查,以及通过三次强制关机触发恢复环境重试重置。 …

    2026年9月21日
    000
  • iPhone 17 Pro如何关闭后台应用刷新

    关闭iPhone后台应用刷新可省电省流量,进入设置→通用→后台App刷新,关闭顶部总开关或单独关闭特定App,还能提升系统流畅度。 虽然目前还没有iPhone 17 Pro,但关闭后台应用刷新的方法在所有iPhone上都是一样的。你可以通过设置里的“通用”选项来管理这个功能,既能省电也能减少数据使用…

    2026年9月21日
    100
  • Linux查看系统日志的常用命令

    答案是查看Linux日志需综合使用journalctl、dmesg、tail、grep等工具。journalctl用于systemd系统集中查询服务及内核日志,支持时间、优先级、字段等多维度过滤;dmesg专注内核启动与硬件问题;tail -f实时监控日志动态;cat、grep、less结合正则和管…

    用户投稿 2026年9月21日
    000
  • Workerman服务启动失败的排查步骤

    workerman服务启动失败的排查步骤如下:1. 检查配置文件,确保无语法错误;2. 查看系统日志,寻找错误线索;3. 检查端口占用情况,确保端口未被占用;4. 调整文件权限,确保workerman有足够权限;5. 检查php环境,确保版本兼容且扩展已安装。 关于Workerman服务启动失败的排…

    2026年9月21日
    200

发表回复

登录后才能评论
关注微信