Подсчет (id) в MySQL в строку - PullRequest
1 голос
/ 30 ноября 2009

У меня есть запрос SQL:

$query = "SELECT yearoffiling, COUNT( id )
FROM files
GROUP BY yearoffiling
LIMIT 0 , 30";

Как поместить значения из COUNT(id) в строку?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 30 ноября 2009
$query = "SELECT yearoffiling, COUNT( id ) total FROM files GROUP BY yearoffiling LIMIT 0 , 30";

$result = mysql_query($query);

while ($ary = mysql_fetch_assoc($result)){

    echo $ary['total'];

}

Вот как бы я это сделал "старой школой". Я рекомендую использовать подготовленные заявления и PDO в эти дни. Надеюсь это поможет.

3 голосов
/ 30 ноября 2009

Для этого можно использовать функции convert () или cast () .

SELECT cast(COUNT(id) as char), ....
2 голосов
/ 30 ноября 2009

Для этого есть два шага:

  1. Определение псевдонима столбца для COUNT(id)
  2. Необязательно: Измените тип данных, используемый MySQL для столбца, чтобы минимизировать проблемы с преобразованием типов данных

Определение псевдонима столбца

Псевдоним столбца всегда определяется после объявления столбца, включая вычисляемые столбцы, такие как COUNT(id) в вашем примере. Как вы заметили, они необходимы для вычисляемых столбцов, чтобы ссылаться на значение в других местах. Вы можете использовать нотацию AS или просто объявить псевдоним в одинарных кавычках. Примеры:

COUNT(id) AS count_id
COUNT(id) 'count_id'

Оба являются допустимым синтаксисом, но имейте в виду, что если вы используете ключевые слова MySQL, вам придется использовать обратные символы (`) для экранирования значения для выполнения запроса.

Псевдоним можно назвать как угодно, но он действительно должен быть информационным. Если вы не уверены, используйте тест в прихожей - случайным образом спросите людей в прихожей, имеет ли это смысл.

Изменение типа данных

Это требуется, когда вы имеете дело с любым программированием, которое не выполняет неявное приведение типов, которое потребует от вас получить значение столбца (в данном случае целое число) и преобразовать его в строку (или любой другой требуемый тип данных - десятичный, плавающий и т. д.). Вы можете использовать любую из функций MySQL CAST или CONVERT - они являются синонимами друг друга. Примеры:

CAST(COUNT(id) AS VARCHAR(4))
CONVERT(COUNT(id), VARCHAR(4))

Имейте в виду, что это происходит с областью MySQL, поэтому вы можете только CAST / CONVERT для типов данных MySQL .

2 голосов
/ 30 ноября 2009

Джереми, просто чтобы добавить к твоему, я думаю, тебе может понадобиться атрибут AS, чтобы сделать модификацию

$query = "SELECT yearoffiling, COUNT( id ) AS total FROM files GROUP BY yearoffiling LIMIT 0 , 30";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...