Hapuskan rekod dengan mengumpulkan dan mengagregatkan
P粉731861241
2023-08-17 19:20:03
<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>
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
.