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中使用^表示以什么开始,$表示以什么结尾。

 

 

 

 

收藏 打印