当前位置:Gxlcms > PHP教程 > php查询mysql中某id是否存在用哪个语句效率高?

php查询mysql中某id是否存在用哪个语句效率高?

时间:2021-07-01 10:21:17 帮助过:4人阅读

我想在mysql一个表中查询某个id是否存在?请问下面两种方法哪个效率更高?

方法一:

$sql="SELECT COUNT(*) FROM `table` WHERE id=10";
$rst = mysql_query($sql);
$row = mysql_fetch_row($rst);
if($row[0]){
 //通过$row[0]是否为0来判断id=10是否存在
}

方法二:

$sql="SELECT * FROM `table` WHERE id=10";
$rst = mysql_query($sql);
$arr = mysql_fetch_assoc($rst);
if($arr){
 //通过数组$arr是否存在来判断id=10是否存在
}

或者有没有更高效的方法?

回复内容:

我想在mysql一个表中查询某个id是否存在?请问下面两种方法哪个效率更高?

方法一:

$sql="SELECT COUNT(*) FROM `table` WHERE id=10";
$rst = mysql_query($sql);
$row = mysql_fetch_row($rst);
if($row[0]){
 //通过$row[0]是否为0来判断id=10是否存在
}

方法二:

$sql="SELECT * FROM `table` WHERE id=10";
$rst = mysql_query($sql);
$arr = mysql_fetch_assoc($rst);
if($arr){
 //通过数组$arr是否存在来判断id=10是否存在
}

或者有没有更高效的方法?

我觉得

select id from `table` where id=10 limit 1

效率更高一点吧,当命中一条后不再继续

SELECT id FROM table WHERE id=10

你的哪两句,一个要做count运算,不个不做,你说哪个效率高

那还不如写select 1 from table where id = 10 limit 1呢,其实这几个我记得都差不多,

如果id做了索引的话,就不要去select非索引字段,这样查询就只需走索引文件就ok了

很久不用了

如果只是来查询有没有,不要select ,一般ID都是索引,select ID就行,SQL语句,如果数据多,select ID和select 效率差的还是挺多的,可以用蠕虫复制自己生成几百万条数据比较下。

按我之前的印象,是COUNT的快

尽量不要在SQL中使用函数吧。。。

人气教程排行