2011-12-04 15 views
26

Innodb tablomun yapısı şu şekildedir: 2 sütun (CountryID, Year) birincil anahtar olarak (CountryID, Year, %Change, Source). Her satırı silmek için bir for döngüsü kullanmanın dışında birden çok satırı nasıl silebilirim?MySQL'de birleşik birincil anahtar olarak 2 satırlı birden çok satır nasıl silinir?

ben daha tweaks sonra cevap Bulundu

DELETE FROM CPI 
WHERE CountryID AND Year IN (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

benzer bir şey arıyorum: Bu aynı zor durumda orada kimse yardımcı olur

DELETE FROM CPI 
WHERE (CountryID, Year) IN (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

Umut.

+0

Hata mesajını gönderir misiniz? Ne çalışmıyor? Bana çalışması gerektiğine benziyor. Bağımlı tablolar var mı? –

+0

Merhaba carl. hmm .. Yorumunuzu gördükten sonra sorumu açıklığa kavuşturdum. umarım düzenlemek daha iyi açıklar. –

+0

woops, bulundu. Soruyu cevabı yansıtacak şekilde düzenledi. herkese teşekkürler! –

cevap

29

Oracle cevabı:

delete from cpi 
where (countryid, year) in (('AD', 2010), ('AF', 2009), ('AG', 1992)) 

Oldukça standart SQL sözdizimi ve ben MySQL aynı olduğunu düşünüyorum.

+0

ahaha, sadece benim için aynı sorumu düzenledi. teşekkürler ben! –

+2

Bu, MySQL –

+1

'da çalışır! MySQL'de de çalıştı ve çekicilik gibi çalışıyor! –

İlgili konular