Я хочу сделать выбор в MySQL с ограничением строк, но в том же выборе подсчитать общее количество строк (не между ограничениями).

Как я могу изменить приведенный ниже код, чтобы подсчитать все строки из этой таблицы продуктов? Если я добавлю счетчик в этот выбор, он будет считать только 10.

SELECT  id,
        name,
        categ 
FROM    products

LIMIT 0, 10
-1
Radu 2 Ноя 2019 в 15:51
If I add a count in this select it will count only 10. какой sql вы имеете в виду здесь? Пожалуйста, отредактируйте вопрос, чтобы показать запрос и результат.
 – 
AD7six
2 Ноя 2019 в 15:53
Вы ничего не считаете в своем SQL. Где COUNT(1)?
 – 
Dharman
2 Ноя 2019 в 15:56

1 ответ

Вы можете попробовать это:

SELECT  id,name,categ ,( SELECT count(*)
FROM products) as numberRows FROM products
LIMIT 10

Есть пример: https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=ccc90496f13be1cc046b72cd8007a>

0
Aymen Azem 2 Ноя 2019 в 16:34
ВЫБЕРИТЕ идентификатор, имя, категорию, (ВЫБЕРИТЕ количество (*) ИЗ продуктов) как numberRows FROM products LIMIT 10
 – 
Aymen Azem
2 Ноя 2019 в 16:29
 – 
Aymen Azem
2 Ноя 2019 в 16:30
Спасибо. Мне нужно это, чтобы создать выбор из разбиения на страницы. Так что лучше использовать свой выбор или сделать выбор, как показано ниже: SELECT * FROM products; Запас количества строк с mysqli_num_rows. Имея количество строк, создайте еще один выбор, чтобы ограничить количество продуктов на странице. SELECT id,name,categ FROM products LIMIT 0, 10"; Я не знаю, ведь это правильно.
 – 
Radu
2 Ноя 2019 в 17:33