1

好的,我在这里有点困惑。在我的数据库中,我有 5 行此数据 =>“string@domail.com”(全部小写),这是我的代码,查询 1(我正在使用 php 和 mysql):

$str = 'STRING@DOMAIN.COM';

$sel = mysql_query("SELECT COUNT(*) 
                    FROM table 
                    WHERE `column` = '{$str}'");
$num = mysql_num_rows($sel);

echo $num;

结果是 1。但是如果我更改为 Query2

SELECT column 
FROM table 
WHERE `column` = '{$str}'"

它返回 5。

另一个问题是,如果我想找出数据库中存在的行数,查询 1 或 2,就查询速度而言,我应该使用哪个查询?

4

1 回答 1

1
$num = mysql_num_rows($sel);

这将返回从您的查询中选择的行数。对于查询一,由于您COUNT(*)从表中进行选择,因此它返回一行,其中包含一个单元格:该单元格的值为 5。第二个查询选择所有值为 from 的条目$str,因此mysql_num_rows($sel);确实会返回 5。

至于另一个问题,首先查询是否更有效,但是如果您正在寻找具有 value 的行数,$str请不要使用mysql_fetch_row()mysql_num_rows()

于 2009-12-02T03:51:11.363 回答