自己总结的ruby on rails 查询方法
闲来无事,结合以前的代码,总结了ruby on rails的查询方法,方便自己以后查看,也方便后来人,如下,欢迎批评指正
1::simpleDB
modules = find(:all, :conditions => ["site_id != '' and next_crawl < ? and next_crawl is not null and next_crawl != 'nil' and active='#{active}' and (in_queue is null or in_queue='nil' or in_queue='false')", Time.now],:order=>"next_crawl")
modules = Module.find(:all, :conditions => [" next_snapshot is not null and next_snapshot!='nil' and next_snapshot < ? and priority= ? and ready_for_queue = ? and uri not like 'http://weibo.com%'", Time.now, priority,true], :order=>"next_snapshot",:limit => limit)
modules = Module.select(:all, :conditions => ["date > ?", "#{(current-20.day).strftime('%Y-%m-%d')}"], :order => 'date desc')
modules = Module.find(post_id,:params => {:topic_id => topic_id}) 2::Mysql
Mysql使用find 进行查询
module = Module.find("id") Mysql默认 使用id 查询,直接find 即可
modules = Module.find(:all, :conditions=>['brand_id = ? and charged >?',@brand_id, 1.months.ago]).uniq 根据条件 查询所有,去重复
module = Module.find(:first,:conditions=>["member_id = ? and id = ?",session[:user_id],params[:job_id]])
module = Module.find(:all,:conditions=>["id in (?)",job_ids]) in job_ids 查询
module = Module.find(:all, :conditions=>['col_name = ?',col_val], :order=>"created_at") 按照某个字段order
Module.find(:all, :conditions => ['member_id = ?', @member.id]).map{|view| view.ft_id} 返回数据,值为ft_id的值
modules = Module.find(:all, :limit => limit_no, :where => ["id = '#{id}' and date <= '#{date}'"], :order => [:created_at, :desc]) 排序 等等
modules = Module.find(:all, :conditions=>['updated_at > ?', Time.now-20.minute],:order => 'id desc')
modules = Module.find(:all, :joins => [:join_col], :conditions =>['m_id = ?',m_id] )
modules = Module.find(:all,:conditions=>["date > ? and site = 'http://s.weibo.com' and keyword != ''",total_day.day.ago],:order=>["keyword asc","date desc"])
MemberSite.find(:all,:conditions=>["member_id = ?", @member.id]).group_by{|ms| ms.m_id} 内置方法之排序:group_by() 按照m_id 排序
Module.find(:first, :conditions=>['survey_id = ? and name = ?', survey_id, 'STORY'], :select=>'question_id') 什么意思
module = Module.find(:first, :order => "create_date, attending DESC") Mysql使用类似于jdbc的查询
results = ActiveRecord::Base.connection_pool.with_connection do |connection|
id = connection.quote(cuser_id)
start_at = Date.parse(start_time).to_time.to_i * 1000
end_at = Date.parse(end_time).to_time.end_of_day.to_i * 1000 sql = " select count(*) as num from user_follower where cuser_id = #{id} and user_verified_type != -1 and followed_at >= #{start_at} and followed_at <= #{end_at} " connection.execute(sql)
end result = ActiveRecord::Base.connection_pool.with_connection do |connection|
sql = "select count(user_id) as user_id_count from user_follower where cuser_id = '#{cuser_id}'"
connection.execute(sql)
end
@saved_followers_count = result.first[0] || 0 results = ActiveRecord::Base.connection_pool.with_connection do |connection|
id = connection.quote(cuser_id)
sql = " select year, month, day, post_type, count(*) as num , group_concat(concat(post_id,':',topic_id) SEPARATOR ',' ) as ids "+
" from posts_group_by_type_date_time where cuser_id = #{id} and " + generate_date_sql(startTime, endTime) + " group by year,month,day,post_type " connection.execute(sql)
end
把结果当做array返回 to_a
if(results.count == 0)
return []
else
return results.to_a
end mysql 使用where查询
Scope.where({:col => "XXX"}) 最简单的where查询
@industries = Scope.where({:module_type => "industry"}).map{|scope| scope.scope} 上面有介绍
@scope = Scope.where({:scope => params["scope"]}).first 返回第一个值
Threads.where("scope = ? and period = ?", m.id, period).count 根据条件查询,然后count
Analytics.where({:scope => m.id,:topic => 'all', :site_id=>'all', :date => start_time...end_time}).sum("posts") 另外一种赋值方式
Threads.where("scope = ? and topic like ? and period = ?", scope, "%#{topic}%", period).limit(50) limit查询
自己总结的ruby on rails 查询方法的更多相关文章
- rails的数据库查询方法
rails的数据库查询方法 学习了:http://blog.csdn.net/menxu_work/article/details/8664962 学习了:http://www.cnblogs.com ...
- 【转】Ruby on Rails中select使用方法
在Ruby on Rails中真的有一堆Select helper可以用,我们经常容易混淆.常见的有三个..select, select_tag, collection_select(其余的什么sel ...
- 开发新手最容易犯的50个 Ruby on Rails 错误(1)
[编者按]本文最早发布与 JETRuby 博客,主要介绍了开发新手最容易犯的 Ruby 错误.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 一年前,我们创立了以 "Rubyboo ...
- [技术博客] 软工-Ruby on Rails 后端开发总结分享
[技术博客] 软工-Ruby on Rails 后端开发总结分享 在这次软件编写中,我们的后端使用了Ruby on Rails (RoR)框架. Rails框架是用Ruby编写的.这意味着当我们为Ru ...
- Linux超快速安装Ruby on Rails
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文 http://www.flincllck.com/quick-ins ...
- rails查询mongodb通用查询
ruby on rails 很好的跟mongodb进行了结合,gem包: 地址:https://rubygems.org/gems/mongoid 文档:https://docs.mongodb.co ...
- ruby on rails on windows
这次想系统学会rails,最终目标是将redmine改造成顺手的工具,主要的手段就是开发redmine插件.虽然网上都推荐使用类Unix系统,可手头只有win7系统,就安装了. 难免会遇到这样那样的问 ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- [ruby on rails] 跟我学之(9)删除数据
首先需要在index页加个删除链接,并提供一个删除的确认,用户确认删除时,直接删除数据. 修改views 修改 app/views/posts/index.html.erb,如下: <h1> ...
随机推荐
- C#_会员管理系统:开发五(用户注册)
创建一个新的用户注册窗体(VIPRegistration.cs): 用户注册窗体(VIPRegistration.cs)详细代码如下: using System; using System.Colle ...
- SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库
安装了 SAP Mobile SDK 2.2 后发现,这个版本没有自带Sybase SQL Anywhere 数据库. 解决办法: 1. 免费下载 SQL Anywhere Develope ...
- 0-1背包的动态规划算法,部分背包的贪心算法和DP算法------算法导论
一.问题描述 0-1背包问题,部分背包问题.分别实现0-1背包的DP算法,部分背包的贪心算法和DP算法. 二.算法原理 (1)0-1背包的DP算法 0-1背包问题:有n件物品和一个容量为W的背包.第i ...
- Java字符串排序中文+数字
编写日期: 2013年9月15日 另一中解法:点击查看 解决思路: 在Java中,排序需要复写的是 equals 方法 和 Comparable<T> 接口 的public int com ...
- iOS 7 - Auto Layout on iOS Versions prior to 6.0
链接地址:http://stackoverflow.com/questions/18735847/ios-7-auto-layout-on-ios-versions-prior-to-6-0 Stac ...
- maven常见问题汇总
package阶段得到的是build目录下编译后的类包(jar),install是把这个包和一些maven的元信息(比如pom.xml)复制到本地仓库,assembly一般是把build结果和一些资源 ...
- 有关oppo蝴蝶解锁的三D技术
oppo手机的界面设计也是很漂亮的.在很多界面中使用了3D技术塑造出了大量华丽的效果.在蝴蝶解锁中使用了两个对称的三D变幻,宛如蝴蝶翅膀上美丽的花纹.在受到用户点击后,随风缓慢上下扇动,充满浪漫的动感 ...
- Java数组与泛型
Java中不能创建泛型数组,例如不能这样写:[java] view plaincopyArrayList<String>[] as = new ArrayList<String> ...
- hive怎样处理多分隔符数据
问题描写叙述: 大数据维稳需求中,客户提供的測试数据为多个字符做分隔符('|#'),在pig中会直接报错,hive中仅仅认第一个分隔符. 因为数据量比較大(160G),在文本中替换成单个字符分 ...
- Action的返回值类型总结
Action的返回值 MVC 中的 ActionResult是其他所有Action返回类型的基类,下面是我总结的返回类型,以相应的帮助方法: 下面是这些方法使用的更详细的例子 一.返回View ...