返回介绍

select 查询

发布于 2024-06-15 14:30:40 字数 5940 浏览 0 评论 0 收藏 0

select data

[TOC]

使用 select 查询数据必须至少给出两条信息——想要什么,以及从什么地方选择。

关键字不区分大小写,但是表名列名区分大小写。

distinct 去重

只适合查询单列的时候去重,因为 distince 必须放在查询列的最前面,表示对所有列去重,而不能部分使用 distinct。

select distinctfrom;

选择多列时,除非指定的两列都相同,否则所有行都会被检索出来。

限制结果

selectfrom

limit num;

想要指定开始的行

selectfrom

limit 5, 20;

第一个数字是开始的行数,需要说明的是,mysql的行是从0开始的。因此 limit 1, 1 将检索出第二行而不是第一行。

mysql5 给出了一中新的表示方法。

selectfrom

limit 5 offset 20;

意为从20行开始查出5行。

完全限定表名

.

order by 排序

默认数据一般以它在底层表中出现的顺序显示。如果不明确排序,则不能假定检索出的数据顺序有意义。

order by 子句可以跟一列或多列的名字,对这些列进行排序。多个列时,优先按照前面的列排序,前面列的值形同,按照后面的列排序。

支持 ASC和DESC排序。

where 子句

位于 order by 子句之前。

支持 = , !=, >, >=, <, <=, between A and B

多个条件用and 、 or 连接。 当多个并列时, AND优先级更高。

is null 和 not is null。

in (2, 25, 3);

like 模糊查询

% 任意多个字符 _ 任意一个字符

比较慢,建议先通过其他条件过滤,然后剩余数据进行模糊查询。

正则表达式进行过滤

查询、替换、截取 mysql仅仅实现了正则表达式的一个子集。

子句

regexp ""

在 where 子句之后,order by 子句之前。其实就是like子句的位置。

mysql 的正则表达式自2.23.4之后,不区分大小写。为区分大小写,可以使用BINARY关键字。如 where prod_name regexp binary "JdtPack .000"

Mysql的转义字符有些特殊,要转义.,需要使用\\.,第一个表示转义字符。为了匹配\,需要使用\\\。多数正则表达式实现使用单个反斜杠转义字符就成使用这些字符本身。但MySQL要求使用两个。这是因为MySQL字节解释一个,正则表达式库解释一个。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文