2012-09-08 33 views
1

Можно создать дубликат:
Fastest way to count exact number of rows in a very large table?Получить количество строк в MySQL

Что запрос я могу использовать, чтобы получить количество строк, которые разделяют общую спецификацию.
Пример: Число строк, где idpost = 3

+0

возможный дубликат [? Самый быстрый способ подсчитать точное количество строк в очень большой стол] (http://stackoverflow.com/questions/6069237/fastest-way-to-count -exact-number-of-rows-in-a-very-large-table) или [php: подсчитать количество строк в mysql?] (http://stackoverflow.com/questions/7049153/count-the-number -of-rows-in-mysql) –

ответ

1

Рассмотрим learning SQL:

select count(*) from mytable where idpost=3 
+0

Пожалуйста, не связывайтесь с w3schools, для получения дополнительной информации см. [W3Fools] (http://w3fools.com/) –

+0

Какой кусок дерьма! Случайный удар с улицы, который пишет html-страницу! – JvdBerg

+0

Не совсем случайные удары, если вы заходите на страницу, вы увидите список авторов. –

6

Вы можете использовать COUNT() документально here.

SELECT COUNT(1) FROM posts WHERE idpost = 3 

EDIT: обновление в соответствии с dbf «s предложение .. Убедитесь, что вы различать COUNT (*) и COUNT (1), обсуждается here.

+0

Спасибо за много: D –

+2

по соображениям производительности, если в таблице существует много полей, я бы рассмотрел использование COUNT (idpost) вместо * (all) – dbf

+3

И принятый ответ на этот связанный вопрос (что характерно для [ тег: sql-server], а не [tag: mysql]) и ручная запись для ['COUNT()'] (http://dev.mysql.com/doc//en/group-by-functions.html# function_count) ясно, что 'COUNT (*)' отлично работает. В руководстве MySQL указано: «*« COUNT (*) »оптимизирован для возврата очень быстро, если« SELECT »извлекает из одной таблицы, никакие другие столбцы не извлекаются, и нет предложения WHERE. *« – eggyal

1

Попробуйте

SELECT 
    COUNT(*) as NumberRows 
FROM 
    your_table_name_here 
WHERE 
    idpost = 3 
; 
2

Запрос выглядит следующим образом:

SELECT count(*) FROM some_table WHERE (conditions); 

В вашем примере:

SELECT count(*) FROM some_table WHERE idpost=3; 

Больше на подсчет строк в MySQL: MySQL 5.6 Reference Manual: 3.3.4.8. Counting Rows

EDIT:

Если вы задавались вопросом, какой способ подсчета всех строк лучше (count(*) или count(1)), увидеть это: What is better in MYSQL count(*) or count(1)?.

Смежные вопросы