Hapuskan rekod dengan mengumpulkan dan mengagregatkan
P粉731861241
P粉731861241 2023-08-17 19:20:03
0
1
329
<p>Saya mempunyai jadual sementara dengan kandungan berikut: </p> <pre class="brush:php;toolbar:false;">playlist_id | --------------------------------------- 123 |. 111 | 123 |. 111 | 123 |. 111 | 123 |. 112 | 456 |. 212 | 789 |. 212 |. <p>Saya perlu mengurangkan keputusan Jika untuk <kod>playlist_id, item_id</code>, saya hanya perlu menyimpannya jika semua <kod>lulus</code> jadi dalam Dalam contoh ini, hasil yang saya inginkan ialah: </p> <pre class="brush:php;toolbar:false;">playlist_id | --------------------------------------- 123 |. 112 | 789 |. 212 |. <p>Oleh kerana <kod>playlist_id, item_id</code> pasangan mempunyai nilai <code>false</code> Saya cuba menggunakan <kod>kumpulan mengikut</kod> dan <kod>mempunyai</kod>, jadi pertanyaannya ialah: </p> <pre class="brush:php;toolbar:false;">pilih senarai main, item_id daripada jadual temp kumpulan oleh playlist_id, item_id setelah lulus = benar</pra> <p>Tetapi ini mengembalikan kepada saya semua pasangan yang mempunyai sekurang-kurangnya satu nilai <kod>benar</kod> </p> <p>Bagaimanakah cara saya menghapuskan semua rekod <kod>playlist_id, item_id</code> jika mana-mana daripadanya mempunyai medan <kod>melepasi</kod> </p> <p>Terima kasih! </p>
P粉731861241
P粉731861241

membalas semua(1)
P粉245003607

Anda perlu menggunakan nilai agregat dalam HAVING. Jika tidak, anda hanya menguji baris rawak dalam setiap kumpulan.

Gunakan MIN(passed)来获取每个组中passed的最小值。如果所有值都是true,则为1;如果存在任何false值,则为0.

SELECT playlist, item_id
FROM temp_table
GROUP BY playlist, item_id
HAVING MIN(passed) = true
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan