当前位置: 首页 > news >正文

营销类网站模板/衡水seo优化

营销类网站模板,衡水seo优化,网站开发运营服务合同,扶贫办网站建设Mysql 模糊查询(like子句 、正则表达式) 通常在实际应用中,会涉及到模糊查询的需求,查询在 MySQL 中使用 SQL SELECT 命令来读取数据,有条件的查询可以在 SELECT 语句中使用 WHERE 子句来获取记录 有时候我们需要获取…

Mysql 模糊查询(like子句 、正则表达式)

通常在实际应用中,会涉及到模糊查询的需求,查询在 MySQL 中使用 SQL SELECT 命令来读取数据,有条件的查询可以在 SELECT 语句中使用 WHERE 子句来获取记录

有时候我们需要获取某字段含有 “xxxxx” 字符的所有记录,这时就是模糊查询,下面介绍一下在MySQL中实现模糊查询的两种方式

前言

MySQL 查询数据使用SQL SELECT语句

语法

MySQL数据库中查询数据通用的 SELECT 语法:

SELECT column_name, column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

说明:

  • SELECT 命令可以读取一条或者多条记录,一个字段信息或者多个字段信息,可使用星号(*)来代替其他字段返回表的所有字段数据
  • SELECT 命令 from 后可以使用一个 / 多个表,表之间使用逗号( , ) 分割
  • SELECT 命令 使用 WHERE 语句来包含任何条件
  • SELECT 命令 使用 LIMIT 属性来设定返回的记录数。
  • SELECT 命令 使用 OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

like子句

根据上述的语法,模糊查询的限制位置在 where 语句后,即like 在 where 中使用

语法

SELECT field1, field2,....,fieldN 
FROM table_name
WHERE field1 LIKE condition;

说明:

  • LIKE子句 在 WHERE 子句中使用,若 condition 为明确的数据,则 LIKE子句 相当于 等号 =(精准查询)
  • 通常,condition 会包含 % ,即 LIKE 通常与 % 一同使用,进行搜索(模糊查询), xxx% 查找指定前缀的记录,%xxx 查找指定后缀的记录,%xxx% 查找包含指定内容的记录

示例

前提准备:创建表与插入数据

-- ----------------------------
-- Table structure for product
-- ----------------------------
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product`  (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '产品名称',`price` decimal(10, 2) UNSIGNED NOT NULL COMMENT '产品价格',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of product
-- ----------------------------
INSERT INTO `product` VALUES (1, 'Apple iPhone 13 (A2634)', 6799.00);
INSERT INTO `product` VALUES (2, 'HUAWEI P50 Pro', 6488.00);
INSERT INTO `product` VALUES (3, 'MIX4', 4999.00);
INSERT INTO `product` VALUES (4, 'OPPO Find X3', 3999.00);
INSERT INTO `product` VALUES (5, 'OPPO Find X4', 3999.00);
INSERT INTO `product` VALUES (6, 'OPPO Find Pro', 6488.00);
INSERT INTO `product` VALUES (7, 'vivo X70 Pro+', 5999.00);

初始数据:

select * from product;

结果:

请添加图片描述

需求一:查询指定前缀的记录

查询 产品名称oppo(即前缀为oppo) 的产品信息

select * from product where product_name like "OPPO%";

结果:

请添加图片描述

需求二:查询指定后缀的记录

查询产品系列为pro系列的产品,即 产品名称 后缀为 pro 的产品信息

select * from product where product_name like "%pro";

结果:
请添加图片描述

需求二:查询包含指定内容的记录

查询 产品名称 包含 3 的产品

select * from product where product_name like "%3%";

结果:

请添加图片描述

正则表达式

除了上述方法,MySQL 也支持正则表达式的匹配,通过使用 REGEXP 操作符来进行正则表达式匹配

语法

// 不区分大小写的查询
SELECT field1, field2,....,fieldN 
FROM table_name
WHERE field1 regexp condition;// 区分大小写的查询
SELECT field1, field2,....,fieldN 
FROM table_name
WHERE field1 regexp binary condition;

说明:

  • regexp 操作符也在 WHERE 子句中使用,若 condition 不能为明确的数据,需要为正则表达式
  • 默认 regexp 操作符 的查询不区分大小写,如若想区分大小写,可以在 regexp 操作符后 加上 binary 关键字即可

在 REGEXP 操作符中可以使用如下的正则模式:

模式描述
^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置
$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置
.匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像 ‘[.\n]’ 的模式
[…]字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’
[^…]负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’
p1|p2|p3匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。‘(z|f)ood’ 则匹配 “zood” 或 “food”
*匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}
+匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}
{n}n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o
{n,m}m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次

示例

需求一:查询指定前缀的记录

查询 产品名称oppo(即前缀为oppo) 的产品信息 不区分大小写

select * from product where product_name regexp  "^oppo";

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlCaJVRp-1653117439543)(C:\Users\Administrator\Desktop\sx\2022\photo\mysql_9.png)]

查询 产品名称oppo(即前缀为oppo) 的产品信息 区分大小写

select * from product where product_name regexp binary "^oppo";

结果:

请添加图片描述

需求二:查询指定后缀的记录

查询产品系列为pro系列的产品,即 产品名称 后缀为 pro 的产品信息

select * from product where product_name regexp  "pro$";

结果:
请添加图片描述

需求二:查询包含指定内容的记录

查询 产品名称 包含 3 的产品

select * from product where product_name regexp "3+";

结果:

请添加图片描述

总结

上述介绍了两种模糊匹配的实现方式,like 子句 与 正则表达式

很多场景下会使用 like 来对字符串进行匹配,从而实现模糊查询,但是这些场景往往非常简单,而正则表达式是一个非常强大的文本检索过滤工具,适用在很复杂的场景

http://www.lbrq.cn/news/928369.html

相关文章:

  • 网址和网站的区别/免费智能seo收录工具
  • 做网站怎么做多少钱/微信朋友圈推广平台
  • 中山地区做网站公司/seo外包公司兴田德润
  • 网站做用户登录/百度一下官网手机版
  • 网站制作商业模式/百度推广代运营公司
  • 棋牌软件开发/seo从0到1怎么做
  • 用凡科做网站需要花钱吗/seo站长助手
  • 上海知名进出口贸易公司/苏州seo按天扣费
  • 在哪个网站做视频赚钱/免费com域名注册网站
  • 微信赌博链接网站建设/今日重大新闻事件
  • 哈尔滨创意网站建设/怎样做好网络推广呀
  • 山东建设企业网站/百度推广开户
  • 网站如何做seo推广方案/自己创建网页
  • 企业公司有哪些/佛山优化推广
  • 网站图片验证码出不来/如何优化网站排名
  • 河北沧州疫情最新消息今天/seo推广费用
  • 好网站不收藏/百度怎么优化网站关键词
  • 如何用爬虫做网站监控/游戏推广员一个月能赚多少
  • 软件下载官网源码/淘宝seo
  • 招标网站建设招标方案/怎么创建自己的网站
  • 双轨网站开发/网络推广具体内容
  • 南京网站建设公司哪家好/seo指搜索引擎
  • 为第三方网站做推广/企点官网
  • 建站教程流程图/个人网站搭建
  • 怎样制作网页且有链接/外链seo推广
  • 花生壳做网站/seo神器
  • 武威 网站建设/优化官网咨询
  • 南宁网站建设哪家公司实力强/站长工具无内鬼放心开车禁止收费
  • 如何在阿里云自主建网站/今日新闻最新消息50字
  • 棋牌软件开发源代码/东莞优化网站关键词优化
  • Vue2 项目实现 Gzip 压缩全攻略:从配置到部署避坑指南
  • 【Java面试题】缓存穿透
  • Spring Cloud『学习笔记』
  • 【12】大恒相机SDK C#开发 ——多相机开发,枚举所有相机,并按配置文件中的相机顺序 将所有相机加入设备列表,以便于对每个指定的相机操作
  • Python 程序设计讲义(45):组合数据类型——集合类型:集合的常用操作
  • Flow Model Flow Matching