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

मेरी क्वेरी को कम कैसे करें?

आपके प्रश्नों का कोई मतलब नहीं है। सबसे पहले आप डेटा से DISTINCT तिथियों (समय की अनदेखी) का चयन कर रहे हैं। फिर प्रत्येक तिथि के लिए, आप.. उस तिथि के लिए सभी डेटा का चयन करें?

आप सिर्फ एक सवाल क्यों नहीं उठाते हैं

SELECT *, DATE(added) as DateNoTime
FROM tb_videos
ORDER BY added desc

यदि आप केवल 5 तिथियां चाहते हैं, और तालिका बड़ी है, तो दो संभावनाएं हैं।

1, तिथियों में कभी अंतराल नहीं होता, आप उपयोग कर सकते हैं

SELECT *, DATE(added) as DateNoTime
FROM tb_videos
WHERE added >= ADDDATE(CURDATE(), interval -4 days)
ORDER BY added desc

2, यदि अंतराल हो सकता है, उदा। कल के लिए कुछ भी नहीं है इसलिए इसे पिछले 5 दिनों को दिखाना होगा जिनके पास रिकॉर्ड हैं

SELECT *, DATE(added) as DateNoTime
FROM (
    select min(DateNoTime) as MinDate
    from
    (
        select DATE(added) as DateNoTime
        FROM tb_videos
        order by DateNoTime desc
        limit 5
    ) x) y, tb_videos
WHERE added >= y.MinDate
ORDER BY added desc

यह आपको सारा डेटा देता है। PHP में, DateNoTime का ट्रैक रखें। जब भी वह बदलता है, तो आप एक अलग तारीख में होते हैं, जिसके कारण आप पहले किसी अन्य क्वेरी को सक्रिय कर सकते थे। कोड को अन्यथा केवल न्यूनतम रूप से बदलना चाहिए।

अनियंत्रित PHP कोड

$result = mysql_query('
    SELECT *, DATE(added) as DateNoTime
    FROM (
        select min(DateNoTime) as MinDate
        from
        (
            select DATE(added) as DateNoTime
            FROM tb_videos
            order by DateNoTime desc
            limit 5
        ) x) y, tb_videos
    WHERE added >= y.MinDate
    ORDER BY added desc
');
$prevdate = NULL;
foreach($result as $rst)
{    
    if($prevdate!=$rst=>DateNoTime) {
        // do something, like printing out a header for each new date
        $prevdate=$rst=>DateNoTime;
    }

    // do something with the record
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. docker mysql कंटेनर में लॉगिंग सक्षम करें

  2. pyodbc और mySQL

  3. कैसे जांचें कि PHP/MYSQL के साथ उपयोगकर्ता नाम पहले से मौजूद है या नहीं?

  4. PHP:fetchall () का उपयोग कर तालिका डेटा प्रदर्शित करना

  5. दिए गए समय में हर 5 मिनट में डेटा का औसत