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() Show Umumnya
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 − mysql> Delimiter // mysql> CREATE PROCEDURE `query`.`row_cnt` (IN command VarChar(60000)) -> BEGIN -> SET @query = command; -> PREPARE stmt FROM @query; -> EXECUTE stmt; -> SELECT ROW_COUNT() AS 'Affected rows'; -> END // Query OK, 0 rows affected (0.00 sec) mysql> Delimiter ; mysql> Create table Testing123(First Varchar(20), Second Varchar(20)); Query OK, 0 rows affected (0.48 sec) mysql> CALL row_cnt("INSERT INTO testing123(First,Second) Values('Testing First','Testing Second');"); +---------------+ | Affected rows | +---------------+ | 1 | +---------------+ 1 row in set (0.10 sec) Query OK, 0 rows affected (0.11 sec) 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 lainLebih banyak opsi berbagi miseleighDiposting 23 Juli 2008 miseleigh
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 Apa yang terpengaruh baris dalam prosedur tersimpan MySQL?mysql_affected_rows() dapat dipanggil segera setelah mengeksekusi pernyataan dengan mysql_real_query() atau mysql_query(). Ini mengembalikan jumlah baris yang diubah, dihapus, atau disisipkan oleh pernyataan terakhir jika itu adalah UPDATE , DELETE , atau INSERT. Untuk pernyataan SELECT, mysql_affected_rows() berfungsi seperti mysql_num_rows().
Bagaimana cara mengembalikan jumlah baris yang terpengaruh dari prosedur tersimpan?Di SQL Server, Anda dapat menggunakan fungsi sistem @@ROWCOUNT untuk mengembalikan jumlah baris yang dipengaruhi oleh pernyataan T-SQL terakhir. Misalnya, jika kueri mengembalikan 4 baris, @@ROWCOUNT akan mengembalikan 4.
Bagaimana cara memeriksa berapa banyak baris yang akan terpengaruh di MySQL?MySQL ROW_COUNT() dapat digunakan untuk mendapatkan jumlah total baris yang terpengaruh oleh kueri MySQL. Untuk mengilustrasikannya, kami membuat prosedur dengan bantuan yang dapat kami sisipkan catatan dalam tabel dan ini akan menunjukkan kepada kami berapa banyak baris yang telah terpengaruh.
Apa baris yang terpengaruh pada pembaruan di MySQL?Untuk pernyataan UPDATE, nilai baris yang terpengaruh secara default adalah jumlah baris yang benar-benar berubah . Jika Anda menentukan flag CLIENT_FOUND_ROWS ke mysql_real_connect() saat menghubungkan ke mysqld, nilai baris yang terpengaruh adalah jumlah baris “ditemukan”; . |