Как посчитать количество строк в таблице SQL, используя определенные критерии? - PullRequest
0 голосов
/ 29 мая 2011

У меня есть два столбца данных.Один столбец называется «как», который содержит число 1 или 0. Другой столбец называется «объект», который может содержать любое слово.Я хочу подсчитать количество строк, в которых число 1 в столбце «Мне нравится» совпадает с определенным словом в столбце «Объект».

Я пробовал

$numrow1 = mysql_query("SELECT * FROM tablename WHERE like = 1 AND object = '$object' "); 
$numlikes = mysql_num_rows($numrow1);

, нополучил синтаксическую ошибку.Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

LIKE является оператором сравнения строк sql , возможно, даже объектом. Если у вас есть поле с зарезервированным именем, вы должны напрямую обратиться к нему или избежать его.

Переформатируйте оператор SQL внутри mysql_query следующим образом:

SELECT * 
FROM tablename AS T 
WHERE T.like = 1 
      AND T.object = '$object'
2 голосов
/ 29 мая 2011

Если вы хотите получить только количество строк, используйте count () гораздо эффективнее:

SELECT count(*) 
FROM tablename 
WHERE `like` = 1 
AND object = '$object'

Вы не показывали нам сообщение об ошибке, но я догадываюсь, что это потому, что like является зарезервированным словом, и поэтому вам нужно указать имя столбца в кавычках (я настоятельно рекомендую использовать другое имя, чтобы избежать этих проблем будущее).

Если вы используете MySQL в режиме совместимости с ANSI, вы также можете использовать стандартные двойные кавычки для экранирования имени столбца:

SELECT count(*) 
FROM tablename 
WHERE "like" = 1 
AND object = '$object'

Я не уверен, но object может быть также зарезервированным словом, так что, возможно, тоже потребуется процитировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...