首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

SELECT * from table where username like '%陈哈哈%' and hobby like '%牛逼' 这是一条我们在MySQL中常用到的模糊查询方法,通过通配符...INSTR()方法 三、MySQL基于regexp、rlike的正则匹配查询 3-1. regexp中的 OR : | 3-2. REGEXP中的正则匹配 : [] 3-3....REGEXP '网'; -- 等同于 SELECT * from app_info where appName like '%网%'; 3-1. regexp中的 OR : | 功能:可以搜索多个字符串之一...,相当于 or -- 支持 "|" ‘或’符号,匹配包含“中国”或“互联网”或“大学”的数据,支持叠加多个 SELECT * from app_info where appName REGEXP '中国...[[::]] 分别匹配一个单词开头和结尾的空的字符串,这个单词开头和结尾都不是包含在alnum中的字符也不能是下划线。

12.9K44

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

喏 → MySQL专栏目录 | 点击这里 SELECT * from table where username like ‘%陈哈哈%’ and hobby like ‘%牛逼’ 这是一条我们在MySQL...INSTR()方法 三、MySQL基于regexp、rlike的正则匹配查询 3-1. regexp中的 OR : | 3-2. REGEXP中的正则匹配 : [] 3-3....如:select * from table where name regexp ‘ba*’(可以命中“baaa”) (+) 加号匹配1个或多个字符,在它之前也必须有内容。...REGEXP '网'; -- 等同于 SELECT * from app_info where appName like '%网%'; 3-1. regexp中的 OR : | 功能:可以搜索多个字符串之一...,相当于 or — 支持 “|” ‘或’符号,匹配包含“中国”或“互联网”或“大学”的数据,支持叠加多个 SELECT * from app_info where appName REGEXP '中国|

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL模糊搜索的几种姿势

    导读:本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符、RegExp正则匹配、内置字符串函数以及全文索引,最后给出了性能对比。 ?...01 引言 MySQL根据不同的应用场景,支持的模糊搜索方式有多种,例如应用最广泛的可能是Like匹配和RegExp正则匹配,二者虽然用法和原理都很相似,但实际上匹配原则却不尽相同,其中Like要求模式串与整个目标字段完全匹配才检索该记录...Like主要支持两种通配符,分别是"_"和"%",其中前者代表匹配1个任意字符,常用于充当占位符;而后者代表匹配0个或多个任意字符。从某种意义上讲,Like可看作是一个精简的正则表达式功能。...另外:当在Like模式字段中,若不包含任何"_"和"%"通配符,则等价于"=",表示精确匹配,例如查询语句……Like "hello",则仅返回hello一条记录;还可在Like前加限定词Not,表示结果取反...如前所述,Like匹配原则是要求模式串与整个目标字段匹配时,才返回该条记录;而RegExp中则是当目标字段包含模式串时即返回该条记录。

    3.3K20

    SQL

    语言简洁、语法简单:该语言的语句都是由描述性很强的英语单词组成,而且这些单词的数目不多。...插入一条橘子的记录 INSERT INTO student_db VALUES ('6','橘子', 5, '女', '云南', 'CN'); 7.SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录...从 "student_db " 表中选取头两条记录: 显示student_db表的前两行数据 SELECT * FROM student_db LIMIT 2; 10.SQL LIKE 操作符 LIKE...country LIKE '_A'; SQL [charlist] 通配符 MySQL 中使用REGEXP或NOT REGEXP运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。...确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。

    1.5K20

    【MySQL】01_运算符、函数

    模糊匹配运算符 判断一个值是否符合模糊匹配规则 SELECT C FROM TABLE WHERE A LIKE B REGEXP 正则表达式运算符 判断一个值是否符合正则表达式的规则 SELECT...# 在fruits表中,查询f_name字段以字母‘b’开头的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name REGEXP '^b'; # 2.查询以特定字符或字符串结尾的记录...LIKE运算符也可以匹配指定的字符串,但与REGEXP不同,LIKE匹配的字符串如果在文本中间出现,则找不到它,相应的行也不会返回。...# 在fruits表中,使用LIKE运算符查询f_name字段值为“on”的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name like 'on'; Empty...MySQL中使用 LIMIT 实现分页 格式:LIMIT [位置偏移量] 行数 第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移 量”,将会从表中的第一条记录开始

    2.5K30

    MySQL之单表查询

    1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having...; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条 八 使用正则表达式查询 MySQL中使用 REGEXP 操作符来进行正则表达式匹配。...例如, '[abc]' 可以匹配 "plain" 中的 'a'。 [^...] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。...where name REGEXP '[abci]'; # [^alex] 匹配 不符合集合中条件的内容 , ^表示取反 select * from person where name REGEXP...= 'alex' # 'a|x' 匹配 条件中的任意值 select * from person where name REGEXP 'a|x';   #查询以w开头以i结尾的数据 select

    4.8K70

    《MySQL核心知识》第6章:查询语句

    ,是一个可选参数,如果不指定“位置偏移量” 将会从表中第一条记录开始(第一条记录的位置偏移量是0,第二天记录的位置偏移量是1......以此类推) 第二个参数“行数”指示返回的记录条数 SELECT *...1、查询以特定字符或字符串开头的记录 字符“^”匹配以特定字符或者字符串开头的文本 SELECT * FROM fruits WHERE f_name REGEXP '^b' 返回f_name字段以b...开头的记录 2、查询以特定字符或字符串结尾的记录 字符“$”匹配以特定字符或者字符串结尾的文本 SELECT * FROM fruits WHERE f_name REGEXP 'y$' 返回f_name...正则表达式可以匹配指定字符串,只要这个字符串在查询文本中即可,如要匹配多个字符串,多个字符串之间使用分隔符“|”隔开 SELECT * FROM fruits WHERE f_name REGEXP...s_id REGEXP '[456]' s_id字段值中有3个数字中的1个即为匹配记录字段 [456]也可以写成[4-6]即指定集合区间 7、匹配指定字符以外的字符 “[^字符集合]”匹配不在指定集合中的任何字符

    78630

    MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法

    “来替代字符串中的任意一个字符、使用”*“和”+"来匹配多个字符、匹配指定字符串、匹配指定字符中的任意一个、匹配指定字符以外的字符、使用{n,}或者{n,m}来指定字符串连续出现的次数等 第四篇_MySQL...LIKE运算符通常使用如下通配符: “%”:匹配0个或多个字符。 “_”:只能匹配一个字符。...在fruits表中,使用LIKE运算符查询f_name字段值为“on”的记录,SQL语句如下: mysql> SELECT * FROM fruits WHERE f_name like 'on'; Empty...在fruits表中,查找f_name字段中包含字母‘o’或者‘t’的记录,SQL语句如下: mysql> SELECT * FROM fruits WHERE f_name REGEXP '[ot]';...在fruits表中,查询s_id字段中包含4、5或者6的记录,SQL语句如下: mysql> SELECT * FROM fruits WHERE s_id REGEXP '[456]'; 7.

    9510

    学习正则表达式 - 环视

    ----         环视是一种非捕获分组,它根据某个模式之前或之后的内容匹配其他模式。环视也称为零宽断言,匹配条件不会出现在匹配结果中。环视包括:正前瞻;反前瞻;正后顾;反后顾。...例如要匹配单词 ancyent,且要求紧随其后的单词是 marinere。要达到这个目的,我们可以使用正前瞻。 mysql> set @r:='(?i)ancyent (?...i) 选项表示不区分大小写,regexp_substr 函数只返回了模式的第一部分 ancyent。环视模式 marinere 不会返回,因为环视是零宽断言,只匹配某个符合条件的位置。...例如要匹配单词 ancyent,且要求紧随其后的单词不是 marinere。...regexp_substr 函数返回的是 marinere 而不是 ancyent。因为正后顾的模式是匹配条件,不会包含在匹配结果中。

    17820

    MySQL算术比较逻辑位运算符与正则全解

    如果给定的值或者匹配条件为NULL,则返回结果为NULL。 LIKE运算符通常使用如下通配符: “%”:匹配0个或多个字符。 “_”:只能匹配一个字符。...MySQL中使用REGEXP关键字指定正则表达式的字符匹配模式。下表列出了REGEXP操作符中常用字符匹配列表。 查询以特定字符或字符串开头的记录 字符‘^’匹配以特定字符或者字符串开头的文本。...在fruits表中,查询f_name字段以字母‘b’开头的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name REGEXP '^b'; 查询以特定字符或字符串结尾的记录...f_name字段值包含字符串“on”或者“ap”的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name REGEXP 'on|ap'; 之前介绍过,LIKE运算符也可以匹配指定的字符串...在fruits表中,查找f_name字段中包含字母‘o’或者‘t’的记录,SQL语句如下: SELECT * FROM fruits WHERE f_name REGEXP '[ot]'; 匹配指定字符以外的字符

    3.9K30

    你知道MySQL中使用“正则表达式“和“like操作符“有多么影响你的运行效率吗!,快来看看这篇文章,告诉你如何优化

    ,快来看看这篇文章,告诉你如何优化》中,我们将深入探讨MySQL中"正则表达式"和"LIKE操作符"的使用及其对数据库性能的影响。...` 竖杠 逻辑“或”操作符,匹配两个或多个替代模式中的一个。例如,z 竖杠 food能匹配“z”或“food”。(z竖杠f)ood则匹配“zood”或“food”。...匹配以特定字符结尾的字符串 SELECT * FROM table_name WHERE column_name REGEXP 'Z$'; 这条查询语句会返回column_name列中以字母“Z”结尾的所有记录...、“b”或“c”中的任意一个的所有记录。...使用分组和捕获匹配特定模式 SELECT * FROM table_name WHERE column_name REGEXP '(abc)+'; 这条查询语句会返回column_name列中包含一个或多个连续

    19410

    MySQL(三)用正则表达式搜索

    column包含文本1000的所有行;它告诉MySQL:regexp后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理。...,是正则表达式语言中的一个特殊字符,表示匹配任意一个字符(该语句也可以使用like和通配符完成) like和regexp的区别: ①like匹配整个列; select column from table...regexp ‘X|Y’ order by column; or表示匹配其中之一,功能雷雨与select语句中的or语句,多个or条件可并入单个正则表达式 三、匹配几个字符之一 select column...,|如果不括起来,则应用于整个串) 四、匹配范围 集合可以用来定义要匹配的一个或多个字符 比如[0123456789],为了简化这种类型的集合,可使用(-)来定义一个范围,即[0-9];(范围不仅仅局限于数值...七、匹配多个实例 有时候需要对匹配的数目进行更强的控制,比如:寻找所有的数,不管数中包含多少数字,或寻找一个单词并尾随一个s(如果存在)等情况,我们可以利用正则表达式中的重复元字符来完成;如下 ?

    98810

    select 查询基础

    1.1.2 查询指定字段 ☞ 语法 # tb_name 表中需要查询的字段 select field_1, field_2 from tb_name; ☞ 示例 mysql> select name,...后面括号中可以包含多个值,对应记录的字段满足集合中任意一个都会被返回 NOT IN 不在集合中 严格比较两个 NULL 值是否相等 两个操作码均为 NULL 时,其所得值为 1;而当一个操作码为...NULL 时,其所得值为 0 LIKE 模糊匹配 %:表示匹配任意一个或多个字符_:表示匹配任意一个字符。...REGEXP 或 RLIKE 正则式匹配 IS NULL 为空 IS NOT NULL 不为空 AND 多个条件都成立 OR 多个条件中满足一个 ☞ 注意  ① 空值查询需要使用 IS NULL...③ LIKE 中的 % 可以匹配一个到多个任意的字符,_ 可以匹配任意一个字符,需要使用引号整体引起来。  ④ 既可以判断 NULL 值,又可以判断普通的数值,但可读性较低,不推荐使用。

    77931

    MySQL数据库(八):表记录的基本操作(增删改查)

    一、增 insert:增加(条件一条新纪录,默认新添加的记录都添加在已有记录的末尾) 1.格式: 1.1添加新纪录时,只给记录中的某几个字段赋值 insert into 表名(字段名1,字段名2.....值得类型是字符的话需要用双引号引起来 *值与字段的类型一定匹配 2.例子 1.1 给表中插入一条记录 insert into usertab values(46,"plj",100,"x",2000,2000...格式: where 字段名 like ‘表达式’ 表达式符号 : % 匹配0个到多个字符 _ 匹配任意一个字符 #匹配任意3个字符 select username from...sum():对集合中的各参数求和 min():集合中的最小值 max():集合中的最大值 count():记录的个数(空值不算) 1.1 统计所有字段的个数 mysql> select count...limit限制显示记录的条目数 1.1格式: limit N;   # N表示从查询结果的第几条记录开始显示,默认从查询结果的第一条记录开始显示,第一条记录的编号是0 # M 表示显示条目的记录数 limit

    5.3K110
    领券