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