Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

bagaimana cara meminimalkan permintaan saya?

Pertanyaan Anda tidak masuk akal. Pertama Anda memilih tanggal DISTINCT (abaikan waktu) dari data. Lalu untuk setiap tanggal, Anda.. memilih semua data untuk tanggal tersebut?

Mengapa Anda tidak menjalankan satu kueri saja

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

Jika Anda hanya ingin 5 tanggal, dan mejanya besar, ada dua kemungkinan.

1, Tidak pernah ada celah dalam tanggal, Anda dapat menggunakan

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

2, Jika mungkin ada celah, mis. tidak ada untuk kemarin sehingga harus menunjukkan 5 hari terakhir yang memiliki catatan

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

Ini memberi Anda semua data. Di PHP, lacak DateNoTime. Kapan pun itu berubah, Anda berada di tanggal yang berbeda, yang sebelumnya akan menyebabkan Anda mengaktifkan kueri lain. Kode seharusnya hanya berubah minimal.

Kode PHP tidak dicentang

$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. Bagaimana mencegah mysqldump membagi dump menjadi peningkatan 1MB?

  2. Tidak dapat menampilkan nilai yang dipisahkan koma dalam tabel

  3. permintaan mysql, memilih larik hasil tertentu

  4. Pilih nilai numerik terdekat dengan kueri MySQL

  5. MySQL - cara universal untuk mendapatkan kira-kira. ukuran baris dalam byte