mysql中模糊查询的四种用法介绍

yizhihongxing

以下是关于"mysql中模糊查询的四种用法介绍"的完整攻略:

1. LIKE运算符

1.1 基本用法

LIKE运算符用于在WHERE子句中比较列和带通配符的表达式。

基本语法格式:

SELECT * FROM table WHERE column LIKE pattern;

其中,column表示需要进行比较的列,pattern表示带通配符的表达式。比如在以name列为例,要查找名字中包含字符串“Tom”的记录,可以用下列语句:

SELECT * FROM student WHERE name LIKE '%Tom%';

1.2 通配符

通配符在LIKE模式字符串中使用,用来表示不确定的字符。MySQL中支持三种通配符:'%'表示任意字符出现任意次数,'_'表示任意单个字符,'[charlist]'表示任意单个字符集中之一。

以下是通配符的使用示例:

-- 查询名字以T开头,以任意字母结尾的学生记录
SELECT * FROM student WHERE name LIKE 'T%';

-- 查询名字中第二个字母为o,任意字母结尾的学生记录
SELECT * FROM student WHERE name LIKE '_o%';

-- 查询名字中第二个字母为o或a,任意字母或数字结尾的学生记录
SELECT * FROM student WHERE name LIKE '_[oa]%';

2. REGEXP运算符

2.1 基本用法

REGEXP运算符用于在WHERE子句中使用正则表达式比较列和表达式。

基本语法格式:

SELECT * FROM table WHERE column REGEXP pattern;

其中,column表示需要进行比较的列,pattern表示正则表达式。

例如在以name列为例,要查找名字中包含至少一个以字母t开头的单词(例如Tom, Tomcat)的记录,可以用下列语句:

SELECT * FROM student WHERE name REGEXP '[[:<:]]t[[:alpha:]]+';

2.2 正则表达式语法

MySQL正则表达式支持POSIX扩展正则表达式语法,具体语法和用法可以参考MySQL官方文档。

3. SOUNDEX函数

3.1 基本用法

SOUNDEX函数用于返回一个表示字符串发音的四位数字编码,用于比较采用不同拼写方式的单词。

基本语法格式:

SELECT SOUNDEX(string);

其中,string为需要进行音似比较的字符串。例如在以name列为例,要查找名字中音似于“Lee”的记录,可以用下列语句:

SELECT * FROM student WHERE SOUNDEX(name) = SOUNDEX('Lee');

3.2 注意事项

SOUNDEX函数仅适用于英文单词发音比较准确的情况,对于其他语言或者特定字符的情况效果可能不佳。

4. LIKE BINARY运算符

4.1 基本用法

LIKE BINARY运算符用于比较一个字符串是否与另一个字符串完全相同,包括大小写和字符集。

基本语法格式:

SELECT * FROM table WHERE column LIKE BINARY pattern;

其中,column表示需要进行比较的列,pattern表示需要比较的字符串。例如在以name列为例,要查找名字完全等于字符串“Tom”的记录,可以用下列语句:

SELECT * FROM student WHERE name LIKE BINARY 'Tom';

4.2 与LIKE运算符区别

与LIKE运算符不同的是,LIKE BINARY运算符区分大小写和字符集,例如以下语句会返回0行记录:

SELECT * FROM student WHERE name LIKE 'Tom';

这是因为在MySQL中默认是不区分大小写的,所以找不到名字精确等于“Tom”的记录。但是以下语句会返回1行记录:

SELECT * FROM student WHERE name LIKE BINARY 'Tom';

因为在使用LIKE BINARY运算符时,MySQL会严格区分大小写和字符集。

以上就是关于"mysql中模糊查询的四种用法介绍"的完整攻略,另外,上文中所有SQL语句示例仅供参考,具体使用时还需要根据实际情况进行调整。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql中模糊查询的四种用法介绍 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 一条慢SQL语句引发的改造之路

    一条慢SQL语句引发的改造之路 背景 当网站访问量逐渐增大时,通常会面临以下问题: 网页响应速度明显变慢 数据库查询变得缓慢 此时常用的应对方法就是对慢查询进行分析与优化。 审视慢查询 为了寻找慢查询,我们首先需要启用MySQL数据库的慢查询日志功能,并设置慢查询日志阈值(一般设置为1秒)。在一段时间使用后,根据慢查询日志输出的结果,查看哪些SQL语句执行时…

    database 2023年5月19日
    00
  • pgsql 实现分页查询方式

    PgSQL是PostgreSQL的简称,是一种基于SQL的关系型数据库管理系统。在PgSQL中,分页查询非常常见,本文将详细讲解如何使用PgSQL实现分页查询方式。 分页查询的基本原理 分页查询主要是通过LIMIT和OFFSET这两个关键字实现的。LIMIT用于限制每次查询返回的记录数,OFFSET用于指定查询结果集的起始位置。 假设我们需要查询某张表的第6…

    database 2023年5月19日
    00
  • Oracle和MySQL的区别

    Oracle和MySQL是两个常见的关系型数据库管理系统,它们在功能、性能、使用场景等方面有很明显的区别。下面我们深入分析一下这两个数据库管理系统的区别。 功能和特性的区别 Oracle和MySQL在功能和特性方面存在很大的差异,具体如下: 数据类型的区别 Oracle比MySQL支持更丰富、更复杂的数据类型,如CLOB、NCLOB、BLOB、XMLType…

    database 2023年3月27日
    00
  • .Net Core使用Redis

    一.准备     在.Net Core项目中使用StackExChange.Redis来使用Redis,这里通过Nuget去安装相关的包。安装完如下图。 二.配置   在appsettings.json中配置Redis的相关信息。一般需要配置连接地址、实例名、哪个DB、密码。 { “Logging”: { “LogLevel”: { “Default”: “…

    Redis 2023年4月12日
    00
  • sql server利用不同语种语言显示报错错误消息的方法示例

    下面是“SQL Server利用不同语种语言显示报错错误消息的方法示例”的完整攻略: 1. 概述 在SQL Server中,错误消息是用于指示错误类型以及错误原因的一个重要的信息来源。在国际化的环境下,错误消息必须支持不同的语种,以适应不同用户的需求。本篇攻略将介绍如何利用SQL Server来实现对多语言错误消息的支持。 2. 利用内置函数实现多语言错误消…

    database 2023年5月19日
    00
  • Redis集群搭建全记录

    Redis集群搭建全记录 在本攻略中,我将会详细讲解如何搭建Redis集群。本攻略中的示例基于Ubuntu操作系统的环境,其他操作系统也类似,仅可能存在些许不同。 准备工作 在开始搭建Redis集群之前,我们需要做一些准备工作: 下载Redis安装包。可以在Redis官网上下载最新版本的Redis安装包,也可以使用系统包管理器直接安装Redis。 安装和配置…

    database 2023年5月22日
    00
  • MySQL 8.0:无锁可扩展的 WAL 设计

    这篇文章整理自MySQL官方文档,介绍了8.0在预写式日志上实现上的修改,观点总结如下: 在8.0以前,为了保证flush list的顺序,redo log buffer写入过程需要加锁,无法实现并行,高并发的环境中,会同时有非常多的min-transaction(mtr)需要拷贝数据到Log Buffer,如果通过锁互斥,那么毫无疑问这里将成为明显的性能瓶…

    2023年4月8日
    00
  • 最强IDE微软Visual Studio 2017正式版新功能详细汇总(附官方下载地址)

    最强IDE微软Visual Studio 2017正式版是一款非常强大的开发工具,它为开发者提供了许多实用的功能和工具。下面我们来详细讲解一下Visual Studio 2017的新功能。 Visual Studio 2017新功能汇总 支持多种语言 Visual Studio 2017支持多种语言,包括C ++, C#, F#, Visual Basic和…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部