您现在的位置是:首页 > 文章详情

mysql学习-条件查询和范围查询

日期:2021-06-28点击:997
# 条件查询 ## WHERE子句 该语句可以实现按照一定的条件进行查询功能 语法 ```sql SELECT <字段列表> FROM <表名> WHERE <条件表达式> ``` 以下是常见的比较运算符 |运算符|说明| |:-: | :-:| |=|等于| |>|大于| |<|小于| |>=|大于等于| |<=|小于等于| |!>|不大于| |!<|不小于| |<>或!=|等于| ## 使用比较与运算符限制查询结果 1. 使用=查询数据 如果相同条件满足,将该记录显示 ```sql SELECT * FROM goods WHERE id = 22; ``` 2. 使用>查询数据 大于所指定条件的数据 ```sql SELECT id, `name`, views_count FROM goods WHERE views_count > 0 ``` 3. 使用 <查询数据 查询小于条件的数据,注意表中的数据必须小于所指定的条件。 ```sql select id, `name`, views_count from goods where < 16 ``` 4.> =查询 ```sql SELECT id, `name`, views_count FROM goods WHERE views_count >= 16 ``` 5. <=查询 ```sql SELECT id, `name`, views_count FROM goods WHERE views_count <= 16 ``` 6. !=查询 ```sql SELECT id, `name`, original_price FROM goods WHERE original_price != 2000 ``` # 范围查询 范围查询是用来查询给定的两个值之间的数据,通常使用BETWEEN …… AND 和 NOT …… BETWEEN …… AND来指定范围条件 在使用BETWEEN …… AND查询条件的时候,指定的第一个值必须小于第二个值,因为BETWEEN …… AND的实质是查询条件大于或者等于第一个值,并且小于等于第二个值的简写形式,等价于比较运算符">=....<=" 1. 查询两个值之间的数据 ```sql SELECT id AS '商品id', `name` AS '商品名称', original_price AS '价格' FROM goods WHERE original_price BETWEEN 1000 AND 2000; ``` 2. 查询两个日期之间的数据 查询两个日期之间的数据也可以使用BETWEEN来实现,可以使用日期类型的数据作为查询条件 ```sql SELECT id, `name`, addtime FROM goods WHERE addtime BETWEEN '2016-07-20 09:58:53' AND '2016-07-20 10:58:53'; ``` 3. 使用日期函数 通过GETDATE()函数和DATEADD()函数,获取当天的日期和前一天的日期,在通过使用BETWEEN……AND来查询在这两个日期之间的数据 ```sql SELECT GETDATE(); ``` 4. 查询不在两个数之间的数据 可以使用NOT BETWEEN…… AND 来实现 ```sql SELECT id, `name`, original_price FROM goods WHERE original_price NOT BETWEEN 2000 AND 3000; ``` 5. 日期时间查询 5.1 转换日期格式 有时候数据库中表存储的日期可能不是规范的日期形式,为了方便用户查看,需要将日期转换为四位数字的年份,同时改变日期格式,如将‘02.09.02’转换为‘2002-09-02’的格式 - 1. 长日期格式转换为短日期的格式 CONVERT(char(10),getdat(),120) 将日期转换成yyyy-mm-dd格式时间,其中120是格式代码,char(10)是指取出前10位字符 - 2. 将日期中的‘-’转换为'/' REPLACE()函数寻找列值中的'-',将其转换为'/' ```sql -- 查询所有图书信息 SELECT id ,`name`,current_price,addtime FROM goods ORDER BY addtime; -- 把长日期格式数据转换为短日期格式数据 SELECT id,`name`,current_price,CONVERT(char(10),addtime,120) AS '录入日期' FROM goods ORDER BY id; -- 将日期的格式中的'-'转换为'/' SELECT id,`name`,`REPLACE`(CONVERT(char(10),addtime,120,'-','/') AS '录入日期' FROM goods ORDER BY id; ``` 5.2 计算两个日期的时间间隔天数 使用DATEDIFF()函数计算日期间隔天数 语法(MYSQL) DATEDIFF(expr1,expr2) 参数说明: 该函数返回其实时间expr1和结束时间expr2之间的天数,expr1和expr2为日期或者date-and-time表达式,计算中只取这些值的日期部分 ```sql SELECT 书号,书名, CONVERT ( CHAR (10), 出版日期,120 ) 出版日期, CONVERT ( CHAR (10), 下一次出版日期,120 ) 出版日期, DATEDIFF( DAY, 出版日期,下一次出版日期 ) 两次出版相差的天数 FROM goods ``` 5.3 按照指定日期查询数据 - 1. DAY()函数 返回代表指定的日期的天日期部分的整数 DAY(date) 参数说明: date: 类型为datetime 或者smalldatetime的表达式 DAY()函数返回值的数据类型为int ```sql SELECT DAY(0) AS MY_DAY1,DAY('02/03/2018') AS MY_DAY2 ``` - 2. MONTH()函数 实现按月查询 ```sql SELECT "month number" = MONTH('03.11.2017') ``` - 3. YEAR()函数 返回表示指定日期中的年份的整数 ```sql SELECT YEAR(-1) AS MY_YEAR1, YEAR(3) AS MY_YEAR2, YEAR('08/13/2018') AS MY_YEAR3; ``` 举例 查询日期的月和年 ```sql SELECT id, `name`, is_sale, addtime FROM goods WHERE MONTH (addtime) = 7 AND YEAR (addtime) = 2016 AND is_sale = 1; ```
原文链接:https://blog.51cto.com/u_11555417/2951829
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章