order by关键字
主要用来对查询结果进行排序,默认放在select语句最后。
ORDER BY 表列 ASC;//升序(默认)
ORDER BY 表列 DESC;//降序
例子:
SELECT age FROM A ORDER BY age DESC;
order by后面也可以有多个表列,则按照先后顺序进行排序。比如先按照第一个字段排序,第一个字段相等的话,再按照第二个字段排序。
LIMIT关键字
LIMIT子句被用于强制select返回的记录数,可以跟一个或两个整数常量,跟两个的话,第一个参数为偏移量,第二个为记录条数。
例如:SELECT * FROM a LIMIT 2,4;
这句话代表返回表的第三行到第六行,一共四行数据。为什么是第三行呢,因为初始偏移量是0不是1。
IN和EXISTS关键字
IN的最简单用法就是选取IN括号范围内的数据;
SELECT * FROM A WHERE age IN(30,32,33);
选取年龄为30,32,33岁的所有行数据。
IN还可以用于SELECT嵌套查询,
SELECT 表达式 IN(SELECT 表达式 FROM 表 where 条件);
EXISTS和IN的作用一样的,不过只能用于子查询中。
因为IN不利用表索引,所以我们在嵌套查询时最好使用EXISTS,效率高。
FIND_IN_SET函数
FIND_IN_SET(str,strlist)
这个函数用于查找str在strlist哪个位置;
比如find_in_set(‘a’,‘w,e,r,a,q’),结果返回4,第四个位置,如果str不在list中,返回0.
FIND_IN_SET和IN的区别:IN是等不等于,而findinset是包不包含。