如何使用特定条件计算SQL表中的行数?

时间:2011-05-29 07:16:52

标签: php mysql count row

我有两列数据。一列称为“like”,它包含数字1或0.另一列称为“对象”,可以容纳任何单词。我想计算“like”列中数字1与“object”列中某个单词重合的行数。

我试过了

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

但是我遇到了语法错误。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

如果您只想获得使用的行数,则count()更有效:

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

您没有向我们显示错误消息,但我猜是因为like是保留字,因此您需要引用列名称(我强烈建议使用其他名称来避免这些问题在将来)。

如果您在ANSI兼容模式下运行MySQL,您还可以使用标准双引号来转义列名称:

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

我不确定,但object 也可以成为保留字,因此也可能需要引用。

答案 1 :(得分:2)

LIKEsql string comparison operator,甚至可能是对象。如果您有一个带有保留名称的字段,那么您必须直接寻址或转义它。

mysql_query内重新格式化您的SQL语句,如下所示:

SELECT * 
FROM tablename AS T 
WHERE T.like = 1 
      AND T.object = '$object'