通常我们使用自定义排序的语法是:ORDER BY FIELD(`字段名称`, 值1, 值2, 值3),但是如果我想强制值1到值3永远在前面,这个语法是满足不了的.
(1).基本的会员数据表:
id name age 1 zhang 39 2 gao 19 3 chen 21 4 lin 40 5 han 25
(2).现在的需求是age为25,21,19永远排在最前面,理想的写法是:(我以为会很理想)
SELECT * FROM member ORDER BY FIELD(age,25,21,19)
id name age 1 zhang 39 4 lin 40 5 han 25 3 chen 21 2 gao 19
虽然结果的确25,21,19是在一起排序,但是39,40却还在前面。
(3).正确的写法是:
SELECT * FROM member ORDER BY age IN(25,21,19) DESC, FIELD(age,25,21,19)
id name age 5 han 25 3 chen 21 2 gao 19 1 zhang 39 4 lin 40
一般不会遇到这么狗屎的写法,记录下来,免得有人入坑。
下面的是商品数据表,id是主键,catename是分类,titile是标题,price是价格,现在要求计算每种分类下的商品平均价格.id catename &n...
我们从一个结果集中查询信息一般都是select * from (select...),每次都要编写from (select...)非常麻烦,于是我们将结果集保存起来,这就是视图的便利。创建视图的命令为:create view &nb...
已有表名log来记录用户日志,id是主键,uid是用户id,rmk是备注,addtime是时间戳,需要取出不重复的用户日志记录默认的结果集:id uid rmk ...
(1).查询某个字段是否包含某个字符串,可以直接使用likeSELECT oid,oname from zhongxing_options where oname li...
从产品表中统计表中的:记录条数,最小价格,最大价格,平均值SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max...
(1).查询至少有2条订单的客户:SELECT cust_id, COUNT( * ) AS orders FROM orders GROUP BY cust_id HAVING orders ...