sortBy
sortBy(iterator[, context]) -> Array
遍历元素,根据 iterator 返回的值,对 Enumerable 中的元素进行排序。
排序是稳定的,相等的元素在结果集中的次序与原次序相同。元素在应用 iterator 后返回的值必须能够进行严格的比较(即 < 操作符必须在任意两个返回值之间可用)。
注意:数组已经具有原生的 sort 方法,它依赖于数组元素的 自然顺序关系(即对于任意两个元素, < 操作符具有明确的语义)。对于数组,仅当自然顺序关系不存在或不满足需求时才需要使用 sortBy。
译注:其实 Array 的 sort 方法也可以传递一个谓词函数作为判断数组元素大小的准则, 以便实现自定义的排序规则。
可选的 context 参数是...
getElementsBySelector [不推荐]
getElementsBySelector(element, selector...) -> [HTMLElement...]
根据一个或多个指定的 CSS 选择器(字符串),在 element 中查找匹配其中任何一个选择器的后代节点, 并返回一个数组,数组中的元素已经过 扩展。
在 Prototype 1.6 中,不推荐使用 Element#getElementsBySelector 方法,建议使用更简洁的 Element#select。
这个方法类似于 $$(),但是它可以在一个元素的上下文中使用,而不是针对整篇文档。 它们支持的 CSS 语法相同,具体的细节请参考 $$() 的文档。
样例
<ul id="fruits">
<li id="apples">...
getElementsByClassName [不推荐]
getElementsByClassName(element, className) -> [HTMLElement...]
查询 element 下所有具有参数 className 指定的 CSS 类名称的后代节点,并返回一个数组, 数组中的元素已经过 扩展。
在 Prototype 1.6 中,不建议使用 document.getElementsByClassName,因为这个函数的原始实现是返回一个 NodeList,而不是一个 Array。在 v1.6 中,请使用 $$ 或 Element#select 代替。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示 element 的后代节点中具有 CSS 类名称 className 的第一个元素)。
样例
<ul id="fruits"...
getElementsBySelector(element, selector...) -> [HTMLElement...]
根据一个或多个指定的 CSS 选择器(字符串),在 element 中查找匹配其中任何一个选择器的后代节点, 并返回一个数组,数组中的元素已经过 扩展。
在 Prototype 1.6 中,不推荐使用 Element#getElementsBySelector 方法,建议使用更简洁的 Element#select。
这个方法类似于 $$(),但是它可以在一个元素的上下文中使用,而不是针对整篇文档。 它们支持的 CSS 语法相同,具体的细节请参考 $$() 的文档。
样例
<ul id="fruits">
<li id="apples">
<h3 title="yummy!">Apples</h3>
...
getElementsByClassName(element, className) -> [HTMLElement...]
查询 element 下所有具有参数 className 指定的 CSS 类名称的后代节点,并返回一个数组, 数组中的元素已经过 扩展。
在 Prototype 1.6 中,不建议使用 document.getElementsByClassName,因为这个函数的原始实现是返回一个 NodeList,而不是一个 Array。在 v1.6 中,请使用 $$ 或 Element#select 代替。
返回的数组成员按照元素在页面中的顺序进行排列(例如:索引 0 表示 element 的后代节点中具有 CSS 类名称 className 的第一个元素)。
样例
<ul id="fruits">
<li id="apples">apples
<ul&g...
在SQL1999标准中这些内容都是可用的。 order by和group by的用法2007-01-19 17:00一、order by 是按表中某字段排列表中数据。 1、单字段排序 例如:select * from tablaName order by id desc;(注desc为降序,asc或是不写是升序) 2、多字段排序,先按字段1排序,如果字段1相同,则按字段2排序,依次类推。 例如:select * from tableName order by 字段1 desc,字段2 asc; 3、order by 中还可以用算法。 例如:在论坛帖子中,我要按点击数和回复数的10倍的和排序列出所有帖子。 select * from tableName&n...
类别:数据库 查看:123
更新:2014-05-19
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。
但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
Y...
在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY 或 GROUP BY 子句而无需做额外的排序。尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。
使用索引的MySQL Order By
下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分:
SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;
SELECT * FROM t1 WHERE key_part1=constant ORDER BY key_part2;
SELECT * FROM t1 WHERE key_part1=constant GR...