Önceki MySQL işleminde satırları etkilenen almak nasıl?

2 Cevap php

mysql_affected_rows is to get number of affected rows in previous MySQL operation, but I want to get affected rows in previous MySQL operation. For example:

update mytable set status=2 where column3="a_variable";

Bu operasyondan önce, bazı satır durumu zaten 2, ve ben daha önceki MySQL operasyonda, size bir sorgu yayımlayarak alınamıyor etkilenen satırları almak istiyorum

select * from mytable where status=2

Peki bu işi yapmak için?

2 Cevap

Bu verimli olması ve sadece aşağıdaki ile elde edebilirsiniz:

 select * from mytable where column3="a_variable" and status != 2;
 update mytable set status=2 where column3="a_variable";

Ilk sorgu sonucu değişecek satırlar ve ikinci sorgu aslında onları değiştirir.

Bu yüksek performanslı bir sistem ise, bu 2 sorguları arasında kaymasını yeni bir satır önlemek için işlemlere özel dikkat gerekebilir.

Hakkında soran uygulama ve işlev PHP değil, PHP ile sorunuzu etiketlemek lütfen.

Your question tho yanıt olarak, size önce değişime SQL tablonun bir kopyasını tutmak ve değişiklikten sonra tablo ile karşılaştırmak gerekir düşündüren ne yapmak için, sonuçta fark cevap olacaktır. Sadece bir diziye tablo içeriği yükleniyor öncesi ve sonrası dizileri karşılaştırarak PHP yapabilirsiniz, herhangi bir değiştirilmiş / yeni veri cevap (Please note: it is highly not recommended you do this as it can cause an increased load on your server depending on the amount of data stored in the tables.)