1.# 表示限制取数据的条数
select name from user where name="zhazha" limit 1
# 表示从第2行开始,最多一条
select name from user where name="zhazha" limit 2,1
2.# 首先是按照name排序,然后按照id进行排序,默认是升序
select * from user order by name,id
# 首先是按照name排序,然后按照id进行排序,如果是按照降序就使用DESC
#但是这个DESC主要是作用于id,并不能作用于name。如果是针对于所欲的字段,那么只能每个后面都添加DESC。
select * from user order by name,id DESC
3.#使用between确定查找范围
select * from user where id between 1 and 4
#空值检查
select id,name from user where name is null
4.and 和or操作符 优先计算and ,因此这里获取的是id=0并且name="zhazha",或者是id=1的数据
select * from user where id=1 or id=0 and name="zhazha"
5.#使用in相当于or,表示是id=0或者id=2
select * from user where id in(0,2)
6.#使用not,表示是除了id=0或者id=2
select * from user where id not in(0,2)
7.使用like和通配符
%表示任何字符,出现任何次数
select * from user where name like "zha%"
_表示只能匹配一个字符
select * from user where name like "_ichael"
8.使用REGEXP,这表明后面的是正则表达式
.表明的是一个字符
select * from user where name regexp ".ichael"
使用like和regexp的区别,like如果不使用通配符,那么就只能精确的匹配
regexp,是和列值内容匹配,比如:
name为"Michael"
name like "chael" 就不能查到数据
但是 name regexp "chael" 就能查到数据
9.#使用regexp正则,使用|表示或
select * from user where name regexp "zha|chael"
#或是使用[],可惜里面只能匹配单个字符,注意要放在“”中
select * from user where name regexp "[zM]ha"
使用^表示非
select * from user where name regexp "[^zM]ha"
可有用在[]中添加-表示的一个取值范围
select * from user where name regexp "[a - z]ha"
10.对于特殊字符使用\\进行转义
* 0个或多个匹配
+ 一个或多个匹配
? 0个或1个匹配
{n} 指定数目的匹配
{n,} 不少于指定数据匹配
{n,m} 匹配数目的范围,m不超过255
select * from user where name regexp "\\([0-9] sticks?\\)"
能够匹配TNT (1 stick) 或者TNT (3 sticks)
11.在regexp中使用^表示以什么开始,$表示以什么结尾。