1111111111111


เว็บใหม่ที่ผมขอใช้ฟรีครับ ภาวนาอยู่ว่าวันดีคืนดีข้อมูลคงไม่หายเหมือนเว็บอื่น

วันอาทิตย์ที่ 20 กุมภาพันธ์ พ.ศ. 2554

การใช้ distinct (ของคำสั่ง SQL) ในคำสั่ง findAll()

ก่อนอื่นต้องขอทบทวนก่อนว่า distinct (ของคำสั่ง SQL) คือ คำสั่งที่ตัดค่าที่ซ้ำกันออกไป

การนำมาใช้ใน findAll() หรือ find*() (* หมายถึงอื่นๆนะครับ เช่น find(), findAll(), findByPk(), findAllByPk(), findByAttributes(), findAllByAtributes())


....
....
$models=Thai::model()->findAll(array(
'select'=>'province',
'distinct'=>true,
));
....
....

อีกรูปแบบของการใช้ distinct (ของคำสั่ง SQL) ด้วย CDbCriteria

....
....
$criteria=new CDbCriteria;
$criteria->distinct = true;
$criteria->compare('province', $this->province, true);
$criteria->order ='province DESC, ampur ASC';
....
....


นอกจากนั้น find*() ยังสามารถใช้คุณสมบัติของ
CDbCriteria ได้อีกด้วยครับ เช่น การเรียงค่า ถ้าใน CDbCriteria ใช้


$criteria->order ='province DESC, ampur ASC';


ก็จะเป็น (ดูบรรทัดที่ 6. นะครับ)

....
....
$models=Thai::model()->findAll(array(
'select'=>'province',
'distinct'=>true,
'order' ='province DESC, ampur ASC',
));
....
....