Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एलोक्वेंट का उपयोग करते हुए लारवेल और मल्टीपल काउंट क्वेश्चन

जब भी आप अपने मॉडल वर्ग पर एक स्थिर विधि कहते हैं, तो यह एक धाराप्रवाह क्वेरी देता है जैसे DB::table('yourmodeltable')->method . यदि आप इसे ध्यान में रखते हैं, तो आप जल्द ही महसूस करेंगे कि एलोक्वेंट मॉडल के साथ कोई भी प्रश्न करना संभव है।

अब, बेहतर प्रदर्शन प्राप्त करने के लिए, आप SQL का उपयोग कर सकते हैं दिनांक () समारोह। नीचे दिए गए मेरे उदाहरण का परीक्षण नहीं किया गया है, इसलिए कृपया इसे बेझिझक सुधारें।

// tomorrow -1 week returns tomorrow's 00:00:00 minus 7 days
// you may want to come up with your own date tho
$date = new DateTime('tomorrow -1 week');

// DATE(objecttime) turns it into a 'YYYY-MM-DD' string
// records are then grouped by that string
$days = Object::where('objecttime', '>', $date)
    ->group_by('date')
    ->order_by('date', 'DESC') // or ASC
    ->get(array(
        DB::raw('DATE(`objecttime`) AS `date`'),
        DB::raw('COUNT(*) as `count`')
    ));

foreach ($days as $day) {
    print($day->date . ' - '. $day->count);
}

इसे कुछ इस तरह प्रिंट करना चाहिए:

2013-03-09 - 13
2013-03-10 - 30
2013-03-11 - 93
2013-03-12 - 69
2013-03-13 - 131
2013-03-14 - 185
2013-03-15 - 69

संपादित करें:

ऊपर सुझाया गया दृष्टिकोण एलोक्वेंट मॉडल के उदाहरण देता है, जो अजीब लग सकता है, खासकर यदि आप var_dump($days) . आप फ़्लुएंट की list() का भी उपयोग कर सकते हैं एक ही चीज़ को प्राप्त करने की विधि।

$date = new DateTime('tomorrow -1 week');

// lists() does not accept raw queries,
// so you have to specify the SELECT clause
$days = Object::select(array(
        DB::raw('DATE(`objecttime`) as `date`'),
        DB::raw('COUNT(*) as `count`')
    ))
    ->where('created_at', '>', $date)
    ->group_by('date')
    ->order_by('date', 'DESC') // or ASC
    ->lists('count', 'date');

// Notice lists returns an associative array with its second and
// optional param as the key, and the first param as the value
foreach ($days as $date => $count) {
    print($date . ' - ' . $count);
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तिथियों की एक श्रृंखला के साथ तालिका को कैसे पॉप्युलेट करें?

  2. mysql - किसी अन्य अनुक्रमणिका के साथ पूर्ण टेक्स्ट खोज में सहायता करने का कोई तरीका?

  3. लोकलहोस्ट से एक ऑनलाइन MySQL डेटाबेस से कनेक्ट करें

  4. किसी Android डिवाइस से PHP का उपयोग करके MySQL डेटाबेस से कनेक्ट करना

  5. विंडोज़ वातावरण में जावा के लिए वेब होस्ट का सुझाव दें