Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php fetchColumn()与rowCount()仅用于检查是否存在_Php_Mysql_Pdo - Fatal编程技术网

Php fetchColumn()与rowCount()仅用于检查是否存在

Php fetchColumn()与rowCount()仅用于检查是否存在,php,mysql,pdo,Php,Mysql,Pdo,我需要检查行是否存在。我的问题是: $smt = $dbh->prepare("SELECT EXISTS(SELECT 1 FROM table WHERE col = ? LIMIT 1)"); $smt->execute(array($var)); 现在我想知道哪一个更快:(我使用PDO) 再说一遍,我不想获取任何行,我只想检查现有的…没关系 如果只选择一行,则两种方法的速度都相同 顺便说一句,你的查询是多余的 SELECT 1 FROM table WHERE col =

我需要检查行是否存在。我的问题是:

$smt = $dbh->prepare("SELECT EXISTS(SELECT 1 FROM table WHERE col = ? LIMIT 1)");
$smt->execute(array($var));
现在我想知道哪一个更快:(我使用PDO)

再说一遍,我不想获取任何行,我只想检查现有的…

没关系

如果只选择一行,则两种方法的速度都相同

顺便说一句,你的查询是多余的

SELECT 1 FROM table WHERE col = ? LIMIT 1
这已经足够了

关于速度差。根据您的代码,在五分钟内,我将发现几个点的效率/速度比这个微不足道的差异低几百倍。只是想告诉你,你对一件小事的关心是多余的。解释型web语言与微秒级优化无关

您真正关心的应该是
col
字段的索引。只要你有它,你的代码是快速的任何方式。如果没有-没有PDO功能将能够使其快速


但是如果你仍然想要一个选择,我会坚持使用
fetchColumn()
,因为它似乎可以更直接地回答问题

为什么不使用
SELECT COUNT(1)
?@RubahMalam,因为我的列是
INT
,根据我的查询是可以的。
SELECT 1 FROM table WHERE col = ? LIMIT 1