搜索
首页数据库mysql教程7、使用WHERE子句查询表中满足条件的记录_MySQL

bitsCN.com

在使用SQL语句进行查询操作时,很多时候开发人员或者用户并不是对数据表中的全部记录感兴趣,而只是想得到实际需要的数据记录,这时就需要对查询结果进行限制。在SQL语句中可以使用WHERE子句过滤掉不符合条件的记录。
1.比较查询
在WHERE子句中可以使用比较运算符对数值、字符值等信息进行查询。比较运算符这里归纳为三类:算术比较运算符、BETWEEN…AND运算符和IN运算符。这一节将分别对对这三种比较运算符的查询方法进行介绍。最后还将介绍WHERE子句中字符串和时间的比较方法。
算术比较运算符
SQL语句中的算术比较运算符主要包括=(等于)、>=(大于等于)、(大于)、(不等于)、!>(不大于)、!字段1  比较运算符 值
其中,字段1表示数据表中需要查询的字段列名,字段1后面跟的是算术比较运算符,值表示的是指定列要比较的数值。使用比较运算符返回的结果是一个逻辑值。如果逻辑值为TRUE,则会返回查询到的记录,如果逻辑值为FALSE,则不会返回相应的查询结果。
注意:在WHERE子句中比较的是数值型数据时,可以不使用单引号;如果是其他类型的数据(例如,字符串、时间型等)则必须使用单引号将其引住。另外,WHERE子句中比较运算符的左侧和右侧的数据类型必须是兼容的。
BETWEEN…AND运算符查询指定条件范围的记录
BETWEEN…AND运算符可以用来查询指定条件范围的记录。使用BETWEEN…AND运算符查询时在BETWEEN运算符和AND运算符后面都需要给定一个值。其语法格式如下:
字段1 BETWEEN 值1  AND 值2
其中,字段1表示数据表中需要查询的字段;值1为给定数值中较小的值;值2为给定数值中较大的值。其最终查询的结果也包括值1和值2本身的值
提示:SQL中,可以使用NOT BETWEEN AND运算符来排除一些记录。例如要查询教师信息表中年龄不在30~50之间的教师信息,就可以通过NOT BETWEEN AND来实现。
IN运算符查询与列表匹配的记录
IN运算符查询用来查询与列表匹配的记录。使用IN运算符,可以将满足列表中满足指定表达式的任何一个值都查询出来。IN运算符后的属性值可以是一个,也可以有多个,多个属性值之间需要要用逗号分隔。其语法格式如下:
字段1 IN(属性值1, 属性值2, 属性值3…)
其中字段1表示数据表中需要查询的字段;属性值1, 属性值2, 属性值3分别表示需要查询的值。属性值既可以是数字类型的也可以是字符类型的值。如果属性值是字符类型的值,则需要使用单引号将其引住。
字符串比较
在使用SQL语句进行比较查询时,经常会遇到字符串比较问题。对字符串进行比较时,常用的数据库都可以使用比较运算符对字符串进行比较,另外,在MySQL数据库中还可以使用关键字BINARY对字符串进行二进制比较。
使用比较运算符对字符串进行比较时,比较运算符的左右两侧字符值应该用单引号引住。
SELECT 'mysql' = 'MySQL'
7、使用WHERE子句查询表中满足条件的记录_MySQL
如果希望比较的字符串区分大小写,可以使用BINARY关键字对字符串进行二进制比较。使用BINARY关键字,会把一个字符串(数字)转换成一个二进制对象。格式如下:

SELECT string1 比较运算符 BINARY string2  或SELECT BINARY string1 比较运算符 string2
SELECT 'mysql' = BINARY 'MySQL'
7、使用WHERE子句查询表中满足条件的记录_MySQL
日期时间的比较
在WHERE子句中对日期值和时间进行比较时,要比较的日期和时间必须是数据库服务器可以接受的字符串格式。例如,在学生信息表(T_student)中,学生的出生日期被设置为DATETIME日期类型的变量。要想在WHERE子句中对学生的出生日期值进行比较,可以使用单引号将该日期值引住。
2.逻辑查询
在SQL语句中逻辑运算符主要包括AND、OR和NOT三种。其中AND运算符用来查询同时满足多个条件的记录,OR运算符用来查询多个条件中满足其中任一个条件的记录,NOT运算符用来查询满足相反条件的记录。
使用AND运算符查询同时满足多个条件的记录
在SQL的执行操作中,很多情况下,WHERE子句并不是只希望满足一个条件,而是希望最终查询的结果必须同时满足多个条件(两个或者两个以上)。这个时候就需要使用AND运算符。其语法格式如下:
条件1 AND 条件2
其中条件1,条件2是在WHERE子句中进行查询时需要满足的条件。如果希望使用AND运算符在WHERE子句中连接多个条件。可以使用下面的语法格式。
条件1 AND 条件2  AND条件3 …
这里使用两个AND运算符来连接3个条件。多个AND运算符进行连接操作时,每一个AND运算符两侧的值必须都为TRUE,也就是说这些条件都同时被满足的情况下,结果才会被显示出来。
说明:在Microsoft SQL Server数据库中,使用“&”符号代替AND运算符表示逻辑与运算。
使用OR运算符查询满足任一条件的记录
在使用SQL进行查询操作时,有些时只是希望查询的结果中满足多个条件中的任一条件即可。这个时候就需要使用OR运算符。使用OR运算符可以用来查询满足任一条件的记录。其语法格式如下:
条件1 OR条件2
其中条件1,条件2是在WHERE子句中进行查询时需要的条件。这两个条件中,只要符合其中任何一个条件,则符合该条件的记录就会被检索出来。如果希望使用OR运算符在WHERE子句中连接多个条件。可以使用下面的语法格式
条件1 OR条件2  OR条件3 …
这里使用两个OR运算符来连接3个条件。多个OR运算符进行连接操作时,两侧的条件中任何一个条件为TRUE,满足该条件的记录就会被显示出来。
说明:在Microsoft SQL Server数据库中,使用“|”符号代替OR运算符表示逻辑与运算。
使用NOT运算符对查询条件的布尔值求反
有些时候,需要查询不满足指定条件的记录,这个时候就需要使用NOT运算符。NOT运算符对查询条件的布尔值求反。
说明:在Microsoft SQL Server数据库中,使用“~”符号代替NOT运算符表示逻辑与运算。
这3个逻辑运算符也可以放到一个SQL语句中混合使用。在这3个逻辑运算符中,NOT的优先级最高,AND的优先级要高于OR。为了便于理解,一般在混合使用这3个逻辑运算符时,可以使用括号将每一个部分括起来。
3.空值查询
在使用SQL语句执行查询操作时,还有一种是空值查询。在数据表中,如果一个表的行属性中不存在任何值的时候,也就是说该表的行属性中没有任何数据记录。那么就将其称之为空值。在SQL的查询中,NULL可以用来表示空值的含义。在SQL语句中,可以使用IS NULL或者IS NOT NULL关键字来判断空值。
4.使用LIKE操作符实现模糊查询
在使用SQL语句进行查询时,经常会遇到这样一种情况,就是不能完全确定所需要查询信息的完整条件,但是这些信息又具有某些明显的特征。例如,想学习SQL语言,希望到图书馆中找一些相关的资料,但是又不知道有关SQL语言的书都有哪些,这个时候一般都会在图书管理系统中输入关键字SQL,这样与SQL有关的所有书籍就都会查到了。这就是模糊查询。在SQL语言中就提供了用于模糊查询的关键字LIKE,它需要和通配符“%”和“_”配合使用。
在SQL语句中,通配符“_”表示匹配单个字符。即在查询语句中,一个“_”只能表示匹配一个字符。
在SQL语句中,通配符“%”表示匹配0个或者多个字符。即一个“%”可以表示0个字符,也可以表示一个字符,也可以表示两个或者更多的字符。
在使用SQL执行模糊查询时,有时数据表某个字段中的字符值本身就含有“%”或者是“_”这两个字符。开发人员希望在查询时,将字符值本身就含有“%”或者是“_”两个字符作为该字符的一部分查询出来,这个时间就需要使用ESCAPE关键字对其进行转义操作。使用ESCAPE关键字进行转义操作步骤如下:
(1)在需要转义的“%” 或者是“_”字符前加一个转义符,该转义符可以是一个任意字符。
(2)在ESCAPE关键字后制定该转义符的名称。
经过这两个步骤之后,位于该转义符之后的那个通配符(“%” 或者是“_”字符)就会被转义为一个普通字符。
5.使用REGEXP关键字进行模式匹配(regular expression
在MySQL数据库中,还提供了一种更加灵活的模式匹配方法,就是使用REGEXP关键字对字符串进行模式匹配。使用REGEXP关键字对字符串进行模式匹配,只要是在被匹配的字符串中含有与匹配模版中相匹配的子串,就被认为是模式匹配。其返回值就为TRUE。
在MySQL数据库中,使用REGEXP关键字对字符串进行模式匹配时,可以使用一些模式匹配修饰符对模式匹配进行测试。
^:用来匹配字符串的开始。
$:用来匹配字符串的结尾。
[]:在方括号中的任何字符都可以匹配。例如[abc]表示匹配方括号中的字符a、字符b或者是字符c。
-:连字符用来表示字符匹配的范围。例如[a-z]表示匹配方括号中字符a到字符z中的任何一个字符。
:表示用于匹配的该字符在被匹配的字符串中出现至少一次或者多次。
*:表示用于匹配的该字符在被匹配的字符串中出现零次或者多次。
():在圆括号中的内容将被看做一个整体。例如(abc),表示匹配样式(abc)的字符串是abc。
{m}:其中整数m表示花括号前的字符串需要出现的次数。例如{abc}{2}表示匹配样式{abc}{2}的字符串是abcabc。
另外,REGEXP还可以对字符串进行模式匹配测试。
SELECT 'agf' REGEXP '[a-d] ','banana' REGEXP '(ana){2}'
7、使用WHERE子句查询表中满足条件的记录_MySQLbitsCN.com
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法拼多多买过的东西在哪里查看记录 查看买过的商品记录的方法Mar 12, 2024 pm 07:20 PM

  拼多多软件内提供的商品好物非常多,随时随地想买就买,而且每一件商品质量都是严格把关的,件件商品都是正品,不同还有非常多优惠的购物折扣,让大家网购根本停不下来。输入手机号在线登录,在线添加多个收货地址和联系方式,可以随时查看最新的物流动态,不同品类的商品板块都是开放的,搜索上下滑动选购下单,足不出户轻松体验便捷的网购服务,还能查看所有的购买记录,包括自己买过的商品,数十个购物红包、优惠券免费领取使用,现在小编在线详细为拼多多用户们带来查看买过的商品记录的方法。  1.打开手机,点击拼多多图标,

如何查看和管理 Linux 命令历史记录如何查看和管理 Linux 命令历史记录Aug 01, 2023 pm 09:17 PM

如何在Linux中查看命令历史记录在Linux中,我们使用history命令来查看所有以前执行的命令的列表。它有一个非常简单的语法:history与历史记录命令配对的一些选项包括:选项描述-c清除当前会话的命令历史记录-w将命令历史记录写入文件-r从历史记录文件重新加载命令历史记录-n限制最近命令的输出数量只需运行history命令即可在Linux终端中查看所有以前执行的命令的列表:除了查看命令历史记录之外,您还可以管理命令历史记录并执行修改先前执行的命令、反向搜索命令历史记录甚至完全删除历史记

我创建了一个由 ChatGPT API 提供支持的语音聊天机器人,方法请收下我创建了一个由 ChatGPT API 提供支持的语音聊天机器人,方法请收下Apr 07, 2023 pm 11:01 PM

今天这篇文章的重点是使用 ChatGPT API 创建私人语音 Chatbot Web 应用程序。目的是探索和发现人工智能的更多潜在用例和商业机会。我将逐步指导您完成开发过程,以确保您理解并可以复制自己的过程。为什么需要不是每个人都欢迎基于打字的服务,想象一下仍在学习写作技巧的孩子或无法在屏幕上正确看到单词的老年人。基于语音的 AI Chatbot 是解决这个问题的方法,就像它如何帮助我的孩子要求他的语音 Chatbot 给他读睡前故事一样。鉴于现有可用的助手选项,例如,苹果的 Siri 和亚马

如何在iPhone中检查通话记录并将其导出?如何在iPhone中检查通话记录并将其导出?Jul 05, 2023 pm 12:54 PM

iPhone中的通话记录经常被低估,并且是iPhone最关键的功能之一。凭借其简单性,此功能具有至关重要的意义,可以提供有关在设备上拨打或接听的呼叫的重要见解。无论是出于工作目的还是法律诉讼,访问通话记录的能力都被证明是无价的。简单来说,通话记录是指每当拨打或接听电话时在iPhone上创建的条目。这些日志包含关键信息,包括联系人的姓名(如果未另存为联系人,则为号码)、时间戳、持续时间和呼叫状态(已拨打、未接或未接听)。它们是您的通信历史记录的简明记录。通话记录包括存储在iPhone上的通话记录条

如何在iPhone上的健康应用程序中查看您的用药日志历史记录如何在iPhone上的健康应用程序中查看您的用药日志历史记录Nov 29, 2023 pm 08:46 PM

iPhone可让您在“健康”App中添加药物,以便跟踪和管理您每天服用的药物、维生素和补充剂。然后,您可以在设备上收到通知时记录已服用或跳过的药物。记录用药后,您可以查看您服用或跳过用药的频率,以帮助您跟踪自己的健康状况。在这篇文章中,我们将指导您在iPhone上的健康应用程序中查看所选药物的日志历史记录。如何在“健康”App中查看用药日志历史记录简短指南:前往“健康”App>浏览“>用药”>用药“>选择一种用药>”选项“&a

摔倒检测-完全用ChatGPT开发,分享如何正确地向ChatGPT提问摔倒检测-完全用ChatGPT开发,分享如何正确地向ChatGPT提问Apr 07, 2023 pm 03:06 PM

哈喽,大家好。之前给大家分享过摔倒识别、打架识别​,今天以摔倒识别​为例,我们看看能不能完全交给ChatGPT来做。让ChatGPT​来做这件事,最核心的是如何向ChatGPT​提问,把问题一股脑的直接丢给ChatGPT​,如:用 Python 写个摔倒检测代码 是不可取的, 而是要像挤牙膏一样,一点一点引导ChatGPT​得到准确的答案,从而才能真正让ChatGPT提高我们解决问题的效率。今天分享的摔倒识别​案例,与ChatGPT​对话的思路清晰,代码可用度高,按照GPT​返回的结果完全可以开

C#开发建议:日志记录与监控系统C#开发建议:日志记录与监控系统Nov 22, 2023 pm 08:30 PM

C#开发建议:日志记录与监控系统摘要:在软件开发过程中,日志记录与监控系统是至关重要的工具。本文章将介绍C#开发中日志记录与监控系统的作用和实施建议。引言:在大型软件开发项目中,日志记录和监控是必不可少的工具。它们可以帮助我们实时了解程序运行状况,快速发现并解决问题。本文将讨论C#开发中如何使用日志记录和监控系统,以提高软件质量和开发效率。日志记录系统的作用

如何进行Java开发项目的日志记录与监控如何进行Java开发项目的日志记录与监控Nov 03, 2023 am 10:09 AM

如何进行Java开发项目的日志记录与监控一、背景介绍随着互联网的快速发展,越来越多的企业开始进行Java开发,构建各种类型的应用程序。而在开发过程中,日志记录和监控是一个不可忽视的重要环节。通过日志记录与监控,开发人员可以及时发现和解决问题,保证应用程序的稳定性和安全性。二、日志记录的重要性1.问题追踪:在应用程序出现错误时,日志记录可以帮助我们快速定位问题

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),