Я пытаюсь найти способ выбора и подсчета некоторых строк в моей базе данных. Я проверял документы MySQL, и это то, что я придумал:Выберите и подсчитайте строки в одном запросе?
$query = "SELECT *, COUNT(*) as total WHERE IMAGE != '' AND CATEGORY = '$category' $limit";
Но это выводит одну строку, когда сделано ... :(
Чем я пробовал:
$query = "SELECT * FROM PRODUCTS,
(SELECT COUNT(*) as total FROM PRODUCTS WHERE IMAGE != '' AND CATEGORY = '$category') as x
WHERE IMAGE != '' AND CATEGORY = '$category' $limit";
Это работает, однако я не знаю, будет ли это работать хорошо, из-за двух операторов SELECT (lus мне не нужно «как x», но без этого запрос не получается).
Есть ли лучший способ? Благодаря
Можете ли вы предоставить некоторые выборочные данные и ожидаемые результаты от вашего запроса? – mba12
Было бы лучше, если бы код не выглядел уязвимым для SQL Injection. – spencer7593
Я думаю, вы ищете [SQL_CALC_FOUND_ROWS] (http://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_found-rows), см., Например, [этот вопрос] (http://stackoverflow.com/questions/12887266/get-total-number-of-rows-when-using-limit) – Solarflare