2013-03-30 10 views

cevap

4

Her ikisine de katılabilir ve koşulu temel alarak güncelleme gerçekleştirebilirsiniz.

WHERE koşulu olmadan. En son giriş için tüm sütun is_unread sütun güncellenir.

+0

Üzgünüz, bir "Hata Kodu: 1064" alıyorum. – enchance

+0

Tam hata mesajı nedir? –

+0

'Sorgu: güncelleme mesajları Messa tarafından mesajlar grubunun GELEN is_unread = 1 iç birleşim (SEÇ Adı MAX (ReceiveTime) max_time set S1 ... Hata Kodu: 1064 Eğer SQL sözdizimi bir hata var , yani karşılık manuel kontrol 'iç birleştirme (SELECT Name, MAX (ReceiveTime) max_time FROM ileti ileti grubunun' satır 2 '' – enchance

22

Sen ORDER ve LIMIT kullanarak deneyebilirsiniz.

bu deneyin:

UPDATE messages_tbl SET is_unread = 1 
WHERE name = 'John' 
ORDER BY ReceiveTime DESC 
LIMIT 1 

Bu sorgu, en yüksek (en yeni) sırasına göre en düşük (en eski) ReceiveTime için ReceiveTime satırları güncelleyecektir. LIMIT ile birlikte kullanıldığında, sadece en son ReceiveTime değiştirilecektir.

+0

Üzgünüm, açıklamamı güncelledim. Senin suçun değil. – enchance

+0

@enchance - Sorun değil, sadece cevabımın hala sorunuzla alakalı olduğundan emin olmak istedim :). – Aiias

İlgili konular