select 查询
select data
[TOC]
使用 select 查询数据必须至少给出两条信息——想要什么,以及从什么地方选择。
关键字不区分大小写,但是表名列名区分大小写。
distinct 去重
只适合查询单列的时候去重,因为 distince 必须放在查询列的最前面,表示对所有列去重,而不能部分使用 distinct。
select distinct
选择多列时,除非指定的两列都相同,否则所有行都会被检索出来。
限制结果
selectlimit num;
想要指定开始的行
selectlimit 5, 20;
第一个数字是开始的行数,需要说明的是,mysql的行是从0开始的。因此 limit 1, 1
将检索出第二行而不是第一行。
mysql5 给出了一中新的表示方法。
selectlimit 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仅仅实现了正则表达式的一个子集。
子句
在 where 子句之后,order by 子句之前。其实就是like子句的位置。
mysql 的正则表达式自2.23.4之后,不区分大小写。为区分大小写,可以使用BINARY关键字。如 where prod_name regexp binary "JdtPack .000"
Mysql的转义字符有些特殊,要转义.
,需要使用\\.
,第一个表示转义字符。为了匹配\
,需要使用\\\
。多数正则表达式实现使用单个反斜杠转义字符就成使用这些字符本身。但MySQL要求使用两个。这是因为MySQL字节解释一个,正则表达式库解释一个。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论