MySQL中的field()函数,可以用来对SQL中查询结果集进行指定顺序排序. 函数使用格式如下: order by (str,str1,str2,str3,str4……),str与str1,str2,str3,str4比较,其中str指的是字段名字, 意为:字段str按照字符串str1,str2,str3,str4的顺序返回查询到的结果集.如果表中str字段值不存在于str1,str2,str3,str4中的记录,放在结果集最前面返回. 例: 表数据如下: root@localhost|ir…
当MySQL查询时排序的字段不是数字时而是汉字的时候也可以用when then 来指定排序. 列如yewu_check表的status 字段不是0,1,2而是汉字待办,已办,退回.可以如下写法: SELECT * FROM yewu_check ORDER BY CASE WHEN STATUS='待办' THEN 2 WHEN STATUS='已办' THEN 1 ELSE 0 END DESC 结果:…
SELECT a.* FROM product_template a INNER JOIN (SELECT p_id,MAX(ID) as max_id FROM product_template where state >= 1 GROUP BY p_id DESC ) b ON a.p_id=b.p_id AND a.ID=b.max_id where a.p_id in ('207','229','46')…
可以快速从数据库获取 对象的 指定字段的集合数组 比如有一个users表,要等到user的id数组: select id from users where age > 20; 要实现在如上sql语句,在rails中有以下几种写法: User.where(‘age > 20‘).select(:id).collect(&:id) User.where(‘age > 20‘).select(:id).map(&:id) -> SELECT id FROM `users…
分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.…
问题描述 大家都知道, mysql 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC 降序排列的 SQL 为: SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排…
多条件排序可能有很多种思路,效率也各不相同,我的方法可能只适合自己用,毕竟目的是为了实现功能,所以采用了最笨的方法,不过效果还是很理想的,经过多次测试,6列1000行数据,平均排序时间大约是:28ms. 具体实现代码如下: function isArr(data) { return ({}).toString.call(data) == '[object Array]'; } function getIndex(arr) { var i = 0, len = arr.length keys =…