ActiveRecord筆記【z】

CharlesCui發表於2007-11-12

find()方法

1、:all找出所有符合條件的記錄
2、:first找出符合條件的一條記錄,不一定是應用程式建立的第一條記錄
3、:conditions指定SQL語句中的where子句的查詢條件,其值可以是一個SQL字串;也可以是一個陣列,其中包含帶有佔位符的SQL語句,以及各個佔位符實際的值。如:
orders=Orders.find(:all,:conditions=> "name='Dave'") #值為SQL字串
name=params[:name]
orders=Orders.find(:all,:conditions=> ["name=?",name]) #值為陣列,?是佔位符,name是佔位符的實際值
orders=Orders.find(:all,:conditions=> ["name=:name and pay_type=:pay_type",params]) #值為陣列,:name和:pay_type都是佔位符,params裡有佔位符的實際值,也可以把params寫成{:name=>name,:pay_type=>pay_type}
3、:order指定排序條件,預設為升序,DESC為倒序,如:
orders=Order.find(:all,
:conditions=>"name='Dave'",
:order=>"pay_type,shipped_at DESC") #按pay_type升序排列,按shipped_at倒序排列
4、:limit限制返回的記錄數,如:
orders=Order.find(:all,
:conditions=>"name='Dave'",
:order=>"pay_type,shipped_at DESC"
:limit=>10) #返回符合條件的前十條記錄
5、:offset總與:order同時使用,指定返回結果在整個結果集中的偏移量,就是從第幾條記錄開始取結果,如:
orders=Order.find(:all,
:conditions=>"name='Dave'",
:order=>"pay_type,shipped_at DESC"
:limit=>10,
:offset=>3) #從符合條件的第三條記錄開始取十條記錄

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9934490/viewspace-981819/,如需轉載,請註明出處,否則將追究法律責任。