博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby condition
阅读量:6690 次
发布时间:2019-06-25

本文共 2131 字,大约阅读时间需要 7 分钟。

class.new 新建

class.find 查询
class.destroy 删除
变量查询
a="hahaha"
Product.find(:all,:conditions=>["title like ?","%#{a}%"])
Product.find(:all,:conditions=>["title like :title",:title=>"%#{a}%"])
Product.find(:all,:conditions=>["title like :title and price>:price",:title=>"%#{a}%",:prcie=>3])
相当
SELECT * FROM "products" WHERE (title like '%a%' and price>3)
字符串查询
Product.find(:all,:conditions=>{:title=>"a"})
相当
SELECT * FROM "products" WHERE ("products"."title" = 'a')
多条件查询合并
>> cs = [{:title=>"a",:price=>(1..20),:description=>"hhhhh"}, "title like '%b%'"]
=> [{:price=>1..20, :title=>"a", :description=>"hhhhh"}, "title like '%b%'"]
>> Product.all :conditions=> Product.merge_conditions(*cs)
相当
SELECT * FROM "products" WHERE (("products"."title" = 'a' AND "products"."price" BETWEEN 1 AND 20 AND "products"."description" = 'hhhhh') AND (title like '%b%'))
把条件设置数组
>> conditions = [] #定义一个数组
=> []
>> conditions << ["title like ?", 'a'] #把一个条件加到数组
=> [["title like ?", "a"]]
>> conditions << ["title like ?", 'a'] if params[:title].present? #加一个判断 非空时加入到数组
include附加查询(减少N+1次查询)
LineItem.all :conditions => "products.title => 'a'", :include => :product
jions附加查询
LineItem.all :conditions => "products.title like '%a%'", :joins => :product
想当
SELECT "line_items".* FROM "line_items" INNER JOIN "products" ON "products".id = "line_items".product_id WHERE (products.title like '%a%')
select查询
Product.find(:all,:select=>"title,price")
相当
SELECT title,price FROM "products"
readonly只读查询
>> p=Product.first
=> #.....
>> p=Product.first(:readonly=>true)
=> #....
>> p.title="xxxxxxxxx"
=> "xxxxxxxxx"
>> p.save #抛出异常
from 指定表名
group 指定分组
limit 指定条数
offset 指定起始数
find_by_sql 直接执行sql语句
获取字段统计信息
Product.average(:price)
Product.maximum(:price)
Product.minimum(:price)
Product.sum(:price)
Product.count()
动态查询
Product.find_by_title_and_price("测试",78.9) #只查第一条first 结果:title和price
Product.find_all_by_title_and_price("测试",78.9) #返回数组 结果:title和price
Product.find_or_create_by_title("hahahaha") #查询并保存
Product.find_or_initialize_by_title("aoiokkok") #查询,如果没有初始化
查看日志
tail -f log/development.log

转载于:https://www.cnblogs.com/liugang/p/3209498.html

你可能感兴趣的文章
30442数据操纵语言DML
查看>>
二叉树的三种非递归遍历方式
查看>>
前端面试的问题汇总-1
查看>>
文本检查点
查看>>
python之断言
查看>>
没有安装或未能初始化关联的源代码管理插件 TFS连不上服务器的处理
查看>>
我的人才管理方式
查看>>
为ASP.NET MVC应用添加自定义路由
查看>>
windows server2008 r2 下启用 sqlserver 2008的远程连接
查看>>
一个极为简单的requirejs实现
查看>>
莫过于无知一点儿
查看>>
多维数组和数组异常
查看>>
C语言中头文件尖括号和引号的区别
查看>>
Python exec 函数
查看>>
ios单例模式(Singleton)
查看>>
Python列表
查看>>
如何打开xip格式的xcode安装包
查看>>
学习:erlang开源项目。
查看>>
ORM : 对象关系映射
查看>>
如何解除改变phpmyadmin数据库导入文件大小限制?
查看>>