ROW_COUNT() mengembalikan jumlah baris yang diperbarui, disisipkan, atau dihapus oleh pernyataan sebelumnya. Ini sama dengan jumlah baris yang ditampilkan oleh klien mysql dan nilai dari fungsi C API mysql_affected_rows()
Umumnya
- Untuk pernyataan yang mengembalikan rangkaian hasil (seperti SELECT, SHOW, DESC atau HELP), kembalikan -1, meskipun rangkaian hasil kosong. Ini juga berlaku untuk pernyataan administratif, seperti MENGOPTIMALKAN
- Untuk pernyataan DML selain SELECT dan untuk ALTER TABLE, kembalikan jumlah baris yang terpengaruh
- Untuk pernyataan DDL (termasuk TRUNCATE) dan untuk pernyataan lain yang tidak mengembalikan set hasil apa pun (seperti USE, DO, SIGNAL atau DEALLOCATE PREPARE), kembalikan 0
Untuk UPDATE, baris yang terpengaruh secara default adalah jumlah baris yang benar-benar diubah. Jika flag CLIENT_FOUND_ROWS ke mysql_real_connect() ditentukan saat menghubungkan ke mysqld, baris yang terpengaruh adalah jumlah baris yang cocok dengan klausa WHERE
Untuk REPLACE, baris yang dihapus juga dihitung. Jadi, jika REPLACE menghapus satu baris dan menambahkan baris baru, ROW_COUNT() mengembalikan 2
Untuk MASUKKAN. PADA DUPLICATE KEY, baris yang diperbarui dihitung dua kali. Jadi, jika INSERT menambahkan baris baru dan memodifikasi baris lain, ROW_COUNT() mengembalikan 3
ROW_COUNT() tidak memperhitungkan baris akun yang tidak langsung dihapus/diperbarui oleh pernyataan terakhir. Ini berarti baris yang dihapus oleh kunci atau pemicu asing tidak dihitung
Peringatan. Anda dapat menggunakan ROW_COUNT() dengan pernyataan yang telah disiapkan, tetapi Anda harus memanggilnya setelah EXECUTE, bukan setelah DEALLOCATE PREPARE, karena jumlah baris untuk mengalokasikan persiapan selalu 0
Peringatan. Saat digunakan setelah pernyataan CALL, fungsi ini mengembalikan jumlah baris yang dipengaruhi oleh pernyataan terakhir dalam prosedur, bukan keseluruhan prosedur
Peringatan. Setelah INSERT DELAYED, ROW_COUNT() mengembalikan jumlah baris yang Anda coba masukkan, bukan jumlah penulisan yang berhasil
Berikut ini adalah prosedur yang menghitung jumlah baris yang terpengaruh oleh kueri MySQL −
Manual MySQL mengatakan bahwa pernyataan pembaruan mengembalikan jumlah baris yang terpengaruh. Kami mencoba mencari cara untuk menggunakan fitur tersebut, dan tampaknya hanya sedikit orang yang menggunakannya atau bahkan berpikir untuk menggunakannya. Cara kami melakukannya di masa lalu adalah melakukan pembaruan dan kemudian memilih untuk menghitung. Namun, kami mencoba mengurangi ukuran prosedur tersimpan kami (kami membutuhkannya lebih cepat. ) dan menggabungkannya menjadi satu pernyataan akan membantu
Ada tips yang satu ini? . Pada dasarnya, dalam prosedur tersimpan, kami menginginkan sesuatu seperti
SET v_count = UPDATE Users SET active=1 WHERE username=v_username);_alih-alih
UPDATE Users SET active=1 WHERE username=v_username; SELECT COUNT(username) INTO v_count FROM Users WHERE active=1 AND username=v_username;
Tautkan ke komentarBerbagi di situs lain
miseleigh
Diposting 23 Juli 2008
miseleigh
- Anggota
- 63
- Pengarang
- Membagikan
Diposting 23 Juli 2008
Tidak apa-apa, kami tetap menemukan cara yang lebih baik untuk melakukannya, tetapi untuk referensi di masa mendatang bagi orang lain - ini disebut ROW_COUNT()
Cukup panggil SELECT ROW_COUNT() setelah menyisipkan, memperbarui, atau memilih, dan Anda akan mendapatkan jumlah baris yang terpengaruh