MySQL ROW_COUNT() 函数使用指南
MySQL ROW_COUNT()
函数返回上一个 SQL 语句执行的受影响的行数。
ROW_COUNT()
语法
这里是 MySQL ROW_COUNT()
函数的语法:
ROW_COUNT()
参数
MySQL ROW_COUNT()
函数不需要任何参数。
返回值
ROW_COUNT()
函数返回上一个 SQL 语句执行的受影响的行数。ROW_COUNT()
函数的执行逻辑如下:
-
如果上一个语句是 DDL 语句,
ROW_COUNT()
函数将返回 0。比如CREATE TABLE
,DROP TABLE
等。 -
如果上一个语句是
UPDATE
,INSERT
,DELETE
,ALTER TABLE
或者LOAD DATA
语句,ROW_COUNT()
函数将返回受影响的行数。 -
如果上一个语句是一个返回结果集的
SELECT
语句,ROW_COUNT()
函数将返回 -1。 -
如果上一个语句不是一个返回结果集的
SELECT
语句,ROW_COUNT()
函数将返回受影响的行数。比如:SELECT * FROM t1 INTO OUTFILE 'file_name'
。
ROW_COUNT()
示例
下面的示例展示了如何使用 ROW_COUNT()
函数。
首先,让我们创建一个表 test_row_count
:
CREATE TABLE test_row_count(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
让我们插入 2 行以供测试:
INSERT INTO test_row_count (id) VALUES (NULL), (NULL);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
这里, 2 rows affected
告诉我们有 2 行受到了影响,即新增加的两行。让我们使用 ROW_COUNT()
函数看一下受影响的行数:
SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| 2 |
+-------------+
这里, ROW_COUNT()
函数返回的 2
与上面 INSERT 语句返回的 2 rows affected
是一致的。
让我们查询一下表中的数据:
SELECT * FROM test_row_count;
+----+
| id |
+----+
| 1 |
| 2 |
+----+
让我们使用 ROW_COUNT()
函数看一下受影响的行数:
SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| -1 |
+-------------+
这里,ROW_COUNT()
函数返回了 -1
。