产品操作MySQL第7篇 – 运算符 - LIKE

MYSQL

本资料为产品岗位作为日常工作参考,语言口语化

At 2019/4/27 By David.Yang


介绍什么是LIKE运算符

有时候我们在数据过滤时,并没有非常精准的过滤条件,

而是受限与一些比较模糊的查询,

比如天龙八部里面儿姓段的到哪儿都不受待见。


怎么查名字段开头的呢?


语法

ϒ LIKE作为过滤条件通常配合在WHERE子句当中使用

ϒ MYSQL提供两种方式来实现模糊匹配,用来与LIKE配合使用:百分号(%)、下划线(_)

百分号(%):通配符允许匹配任意字符串的[0]个或[多个]

下划线(_):通配符允许匹配任何[单个字符串]


LIKE使用(%)实现匹配

为了实现模糊匹配,我们将学生表进行一些修改,

补充姓、名两个字段


并完成数据的补充


语法

WHERE

column LIKE X%

ϒ column 需要匹配的字段值

ϒ LIKE 模糊关键字

ϒ X 匹配表达式

ϒ % 表示目标匹配符


以X开头的匹配

来了来了,我们可以开始玩儿了。


我们搜索学生名字,并且以[y]字母开头,可以使用%,


表达式

x%


SQL

SELECT

*

FROM

students

WHERE

firstname LIKE "y%";


来来来,瞅瞅都拿到些啥


以X结尾的匹配

我还要找名里边儿v结尾的学生有哪些


表达式

% x


SQL

SELECT

*

FROM

students

WHERE

firstname LIKE "%v";


yoyoyo,看看找到谁了


包含X的匹配

我还要找名里边儿只要带ng的学生


表达式

% x%


SQL

SELECT

*

FROM

students

WHERE

firstname LIKE "%ng%";


找到的学生们是


LIKE使用(_)实现匹配

来来来,我们来看看这3条有意思的数据,


他们都是s*i的规律,即s开头,i结尾,

我们使用_匹配看看有什么结果


表达式

x_y


SQL

SELECT

       *

FROM

       students

WHERE

       firstname LIKE "s_i";



是返回了这么一条数据,为什么呢?


忘了我们上文定义语法时讲的么?


x_y表达式匹配时,通配符允许匹配任何[单个字符串]


ϒ 左匹配

表达式

x_


SQL

SELECT

       *

FROM

       students

WHERE

       firstname LIKE "s_";


ϒ 右匹配

表达式

_x


SQL

SELECT

*

FROM

students

WHERE

firstname LIKE "_i";


NOT特性的LIKE运算符的使用

NOT关键子可以和LIKE组合使用,以用来查询不匹配特定表达式的数据。


语法

WHERE

column NOT LIKE X%


举个栗子

🌰

要找到所有不以s字符开头的学生,用NOT LIKE操作

SQL

SELECT

*

FROM

students

WHERE

firstname NOT LIKE "%s"

LIMIT 10;


瞅一瞅


LIKE与ESCAPE子句的使用

有时候吧,我们的数据当中本来就包含特殊符号,

还整好有%和_,

你说巧不巧?


那这时候使用LIKE查询会不会出问题呢?


该怎么办呢?


能办!


用转义,通过转义符号将其特殊内容转化成普通的文字字符,

就能够无障碍继续使用LIKE匹配了。


举个例子

🌰



构建了两人名字,有%字符


我们找出包含dun%的那个谁出来


SQL

SELECT

       *

FROM

       students

WHERE

       firstname LIKE "dun\%%";


他来了


再比如


这人我贼讨厌,要找他也一样操作


SQL

SELECT

       *

FROM

       students

WHERE

       firstname LIKE "%\_jing";


臭小子给揪出来了


怎么找出来的呢?

原来是这个是他“\”,英文的反斜杠,


在数据库和很多编程语言当中都是用“\”来表示转义,

即将特殊字符转化成普通字符。


自定义转义符号

如果我不想用“\”呢?


没问题啊,满足你。


使用ESCAPE,世界就是你的,

你可以自己指定符号作为你的转义符,


比如我就喜欢钱,

us doller,我用$


SQL

SELECT

*

FROM

students

WHERE

firstname LIKE "%$_jing" ESCAPE "$";


赵志敬,你逃不掉的


以上通过ESCAPE “你的符号”来实现自定义转义符


补充

ϒ LIKE运算符的使用是否正确对数据库的性能影响很大,LIKE运算符强制MYSQL扫描整个数据表以找到满足匹配条件的数据行,他不允许数据库引擎使用索引进行快速搜索,因此在数量较大时使用LIKE查询会造成数据库性能大幅度下降。

ϒ LIKE运算符不区分大小写,x% 和 X%效果相同



本文讲解了LIKE的模糊匹配怎么使用,


are you 会了么?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,576评论 0 6
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,772评论 5 116
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊阅读 18,285评论 0 85
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,141评论 0 9
  • 我的心在天上 我跟着 却总力不从心。 我的心在远方 他不是不要我了 他在远方等我 等我飞奔而来。 我的心不在我的身...
    ZeeJo阅读 136评论 0 0