Mysql имеет эквивалент @@ ROWCOUNT как в mssql?

Как я могу получить значения количества строки в MySQL как @@ROWCOUNT в mssql?

39
задан Eric Leschinski 6 December 2013 в 21:49
поделиться

3 ответа

Для SELECTs вы можете использовать FOUND_ROWS конструкцию (документированную здесь):

SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SELECT FOUND_ROWS( ) ;

, которая вернёт количество строк в последнем запросе SELECT (или если в первом запросе есть LIMIT, она вернёт количество строк, которое было бы без LIMIT).

Для UPDATE/DELETE/INSERT, это ROW_COUNT конструкция

INSERT INTO your_table VALUES (1,2,3);
SELECT ROW_COUNT();

, которая возвращает количество затрагиваемых строк.

59
ответ дан 27 November 2019 в 02:36
поделиться
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name

    -> WHERE id > 100 LIMIT 10;

mysql> SELECT FOUND_ROWS();

Подробнее об этом здесь

7
ответ дан 27 November 2019 в 02:36
поделиться

Самый простой способ - использовать переменную:

mysql> SELECT @rowcount:=COUNT(*) FROM my_table;
mysql> SELECT @rowcount;

Или вы можете использовать конструкцию FOUND_ROWS () после помещения SQL_CALC_FOUND_ROWS в оператор SELECT.

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM my_table;
mysql> SELECT FOUND_ROWS();
2
ответ дан 27 November 2019 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: