©SQL :: Manager
HomeProgramm-InformationenTechnische DetailsKostenloser DownloadKaffee für den Autor
Netzwelt
SQL-FunktionMySQLMariaDB

Die ROW_COUNT SQL-Funktion in MySQL und MariaDB - Anzahl betroffener Zeilen

ROW_COUNTSyntax:ROW_COUNT()
Rückgabe-Wert:INTEGER
Funktions-Typ:Informations-Funktion
Funktions-Beschreibung

Die SQL-Funktion ROW_COUNT() gibt die Anzahl der betroffenen Zeilen zurück, die durch eine SQL-Anweisung geändert, eingefügt oder gelöscht wurden.

Bei Anweisungen mit einer Ergebnismenge, wie SELECT, SHOW, DESC oder HELP, wird -1 zurückgegeben, auch wenn die Ergebnismenge leer ist.

Gibt für andere DML-Anweisungen als SELECT und für ALTER TABLE die Anzahl der betroffenen Zeilen zurück.

Für DDL-Anweisungen, einschließlich TRUNCATE, und andere Anweisungen, die keine Ergebnismenge zurückgeben, gib die Funktion 0 zurück.

Bei UPDATE-Anweisungen sind betroffene Zeilen standardmäßig die Anzahl der Zeilen, die tatsächlich geändert wurden.

Wenn das CLIENT_FOUND_ROWS-Flag beim Verbinden mit mysqld angegeben wird, sind die betroffenen Zeilen stattdessen die Anzahl der Zeilen, die mit der WHERE-Klausel übereinstimmen.

Bei REPLACE werden auch gelöschte Zeilen gezählt. Wenn REPLACE eine Zeile löscht und eine Zeile hinzufügt, gibt die ROW_COUNT()-Funktion 2 zurück.

Bei INSERT ... ON DUPLICATE KEY werden aktualisierte Zeilen doppelt gezählt. Wenn INSERT eine Zeile hinzufügt und eine Zeile ändert, gibt ROW_COUNT() 3 zurück.

Durch Fremdschlüssel oder Trigger gelöschte Zeilen werden nicht gezählt.

Bei vorbereiteten Anweisungen sollte ROW_COUNT() nach EXECUTE aufgerufen werden, nicht nach DEALLOCATE PREPARE.

Nach einer CALL-Anweisung gibt die Funktion die Anzahl der Zeilen zurück, die von der letzten Anweisung in der Prozedur betroffen sind.

Nach INSERT DELAYED gibt ROW_COUNT() die Anzahl der Zeilen zurück, die die Anweisung einzufügen versucht habt, nicht die Anzahl der erfolgreichen Schreibvorgänge.

SQL Beispiele für die ROW_COUNT-Funktion

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

DROP TABLE IF EXISTS `test_table`;
    
CREATE TABLE `test_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `type` enum('First','Second','Third','Last'DEFAULT NULL,
  `num` int(11) NOT NULL DEFAULT 0,
  `price` decimal(10,2) NOT NULL DEFAULT 0.00,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `test_table` (`id`,`name`,`type`,`num`,`price`VALUES 
(1,'Art 1','First',1,10.50),
(2,'Art 2','Second',3,12.50),
(3,'Art 3','Second',2,15.50),
(4,'Art 4','Third',5,25.50),
(5,'Art 5','Last',2,5.50),
(6,'Art 6','First',12,1.50),
(7,'Art 7','Third',20,1.75),
(8,'Art 8','Last',100,11.90);

select * from `test_table`;

update `test_table` set num=0 where `type`='First';

select row_count();

delete from `test_table` where `type`='First' or `type`='Last';

select row_count();

INSERT INTO `test_table` (`name`,`type`,`num`,`price`VALUES 
('Art 10','First',1,10.50),
('Art 11','Second',3,12.50);

select row_count();

replace INTO `test_table` (`name`,`type`,`num`,`price`VALUES 
('Art 10','First',1,10.50),
('Art 11','Second',3,12.50);

select row_count();

id
name
type
num
price
int(11)varchar(20) LATIN1enum LATIN1int(11)decimal(10,2)
1Art 1First110.50
2Art 2Second312.50
3Art 3Second215.50
4Art 4Third525.50
5Art 5Last25.50
6Art 6First121.50
7Art 7Third201.75
8Art 8Last10011.90
row_count()
bigint(21)
2
row_count()
bigint(21)
4
row_count()
bigint(21)
2
row_count()
bigint(21)
4
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: Download

Verwendung der ROW_COUNT() Funktion in MySQL und MariaDB-Datenbanken

In MySQL und MariaDB wird die Funktion ROW_COUNT() verwendet, um die Anzahl der Zeilen abzurufen, die von der vorherigen SQL-Anweisung, wie INSERT, REPLACE, UPDATE oder DELETE, innerhalb der aktuellen Sitzung betroffen sind. Die Funktion erfordert keine Argumente und kann unmittelbar nach der Ausführung von SQL-Anweisungen, die Daten aktualisieren, einfügen oder löschen, angewendet werden, um die Anzahl der betroffenen Zeilen zu erhalten.

Mithilfe der ROW_COUNT()-Funktion kann überprüft werden, ob sich eine Änderungsanweisung (INSERT, REPLACE, UPDATE, DELETE) auf irgendwelche Tabellen-Zeilen ausgewirkt hat. Ein Wert von 0 gibt an, dass keine Zeilen betroffen waren, während ein positiver Wert die Anzahl der betroffenen Daten-Zeilen angibt. Auch kann die Funktion in bedingten Anweisungen oder Kontrollfluss-Logik verwendet werden, um verschiedene Aktionen basierend auf der Anzahl der betroffenen Zeilen auszuführen. Die Funktion lässt sich ebenfalls nutzen, um die Anzahl von betroffenen Zeilen zu Prüfzwecken zu protokollieren oder aufzuzeichnen oder um die Auswirkungen von Datenänderungen im Laufe der Zeit zu verfolgen.

ROW_COUNT() gibt nur die Anzahl der betroffenen Zeilen für die letzte in der aktuellen Sitzung (Session) ausgeführten Anweisung zurück. Wenn mehrere Anweisungen nacheinander ausgeführt werden, ist nur die Anzahl der Auktualisierungen der letzten Anweisung verfügbar.
RIGHTRLIKEROUNDROW_COUNTRPADRPAD_ORACLERTRIM

Weitere MySQL und MariaDB SQL Informations-Funktionen

BENCHMARKBENCHMARK(Anzahl, Ausdruck)
Mehr zur BENCHMARK-Funktion

BINLOG_GTID_POSBINLOG_GTID_POS()

CHARSETCHARSET(Zeichenkette)
Mehr zur CHARSET-Funktion

COERCIBILITYCOERCIBILITY(Zeichenkette)
Mehr zur COERCIBILITY-Funktion

COLLATIONCOLLATION(Zeichenkette)
Mehr zur COLLATION-Funktion

CONNECTION_IDCONNECTION_ID()
Mehr zur CONNECTION_ID-Funktion

CURRENT_USERCURRENT_USER()
Mehr zur CURRENT_USER-Funktion

CURRENT_ROLECURRENT_ROLE()
Mehr zur CURRENT_ROLE-Funktion

DATABASEDATABASE()
Mehr zur DATABASE-Funktion

DECODE_HISTOGRAMDECODE_HISTOGRAM()

DEFAULTDEFAULT(Spalte)
Mehr zur DEFAULT-Funktion

FOUND_ROWSFOUND_ROWS()
Mehr zur FOUND_ROWS-Funktion

LAST_INSERT_IDLAST_INSERT_ID([Ausdruck])
Mehr zur LAST_INSERT_ID-Funktion

LAST_VALUELAST_VALUE(Ausdruck [, Ausdruck ...])
Mehr zur LAST_VALUE-Funktion

ROWNUMROWNUM()

SCHEMASCHEMA()
Mehr zur SCHEMA-Funktion

SESSION_USERSESSION_USER()
Mehr zur SESSION_USER-Funktion

SYSTEM_USERSYSTEM_USER()
Mehr zur SYSTEM_USER-Funktion

USERUSER()
Mehr zur USER-Funktion

VERSIONVERSION()
Mehr zur VERSION-Funktion

Numerische FunktionenZeichenketten-FunktionenReguläre AusdrückeDatum und Zeit-Funktionen
Vergleichs-FunktionenVerschlüsselung & KomprimierungKonvertierungs-FunktionenNULL-Funktionen
Aggregat-FunktionenWindow-FunktionenJSON-FunktionenGeometrische Funktionen
Sequenz-FunktionenInformations-FunktionenDynamische Tabellen-SpaltenSonstige Funktionen
Weitere Informationen zur SQL-Funktion ROW_COUNT: mysql.com und mariadb.com
Aktualisiert: 17.09.2023ImpressumKontaktGeschäftsbedingungenDatenschutz & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer