Skocz do zawartości
LolikZabójca

[MySQL] usuwanie ostatniego zdjęcia

Rekomendowane odpowiedzi

image.png.416584e172cd1d388e7221a9751d33bd.png

Tak wygląda tabela ze zdjęcia w Prestashop. Chciałbym napisać kwerendę która usunie ostatnie zdjęcie(czyli najwyższą wartość position) dla każdego produktu(czyli dal każdego id_product).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
DELETE i1
FROM Images as i1
WHERE not exists (
	SELECT * from Images as i2
	WHERE i2.ProductId = i1.ProductId
	AND i2.Position > i1.Position
	)

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ewntualnie coś w stylu (ale spróbuj to na kopii, zacznij od samego selecta, czy jest dobry)

DELETE FROM images WHERE image_id IN ( SELECT * FROM (SELECT image_id FROM images ORDER BY id_image GROUP BY id_product LIMIT 0,10000000) AS p);

Limit trzeba dodać dla nowszych SQLi i MariaDB, bo jakiś tam config bazy (już nie pamiętam) pomija sortowanie przy group by, a z limitem je uwzględnia :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ja bym skorzystał z SELECT MAX(position) :) 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×