Подсчет значений в двух и более столбцах одним запросом через PDO Mysql

Рейтинг: 0Ответов: 1Опубликовано: 16.04.2015

Предстала предо мною задача сделать возможность подсчета количества одинаковых значений в двух столбцах (через SQL запрос SELECT COUNT(*)), использую для построения запросов к базе возможности библиотеки PDO.

Суть проблемы состоит в том, что PDO выводит количество одинаковых значений только в одном столбце, количество одинаковых значений в другом столбце PDO напрочь отказывается выводить (просто не выводит), единственным выходом из положения является составление SQL запроса для каждого столбца отдельно, но я хочу, что бы все это поместилось в один запрос.

Пример кода, который я использую

$enter = "SELECT COUNT(*) FROM table WHERE row='value' AND row1='value1'";
$fetch_info = $db->query($enter)->fetch();
print_r($fetch_info);

В массив попадает значение только одного столбца. В чем может быть проблема?

Ответы

▲ 2Принят

Проблема в том, что ты не понимаешь языка SQL и, как следствие, запрашиваешь у БД не то что тебе надо.

Твой запрос не считает "количество одинаковых записей в первом столбце", что бы это ни значило. Он считает количество строк, одновременно удовлетворяющих условиям row='value' и row1='value1'

Если тебе нужно посчитать количество строк, которые удовлетворяют условию row='value' и отдельно - условию row1='value1', то проще это сдеать двумя запросами.

Кстати, полезная информация:
Если мы запрашиваем одиночное значение, то можно получить его сразу, минуя массив:

$count = $db->query($enter)->fetchColumn();