检查mysql中是否已存在行

时间:2012-12-11 15:41:37

标签: php mysql

快速提问:

如何检查mysql中是否已存在行?

我知道有些人会建议使用mysql_num_rows(),我已经尝试过并且不好。

这是PHP代码:

...

$chk = mysql_query("SELECT * FROM f_table WHERE f = '$id' AND h = 'h' AND status = '1'");

if(mysql_num_rows($chk) > 0){
    $msg = 'exist';
}else{
            $msg = 'gotta';
    }

Ps:我刚注意到php手册建议我们使用其他的而不是'mysql_num_rows()',而我的mysql版本是5.0。它有关系吗?

感谢你的时间。

2 个答案:

答案 0 :(得分:1)

如果您不打算使用这些行,只需执行SELECT COUNT(*) FROM ...即可。否则,即使不推荐使用此API,mysql_num_rows仍然有效。

答案 1 :(得分:1)

通常,您希望让MySQL进行计数,而不是获取所有行。 MySQL可以使用索引而不必检索所有数据,这可能会更高效:

$result = mysql_query('SELECT COUNT(*) as `count` FROM ...') /* or die(mysql_error()) */;
$row = mysql_fetch_assoc($result);

if ($row['count'] ...)