Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
检查行是否存在,最有效的方法是什么? SQL查询/P1/ 从id=1的表中选择EXISTSSELECT/p2/ 从id=1的表格中选择/p2/限制1 SQL选择/P2/ 伯爵 身份证件 PHP PDO函数/P3/ 获取列 条数_Php_Mysql_Pdo - Fatal编程技术网

检查行是否存在,最有效的方法是什么? SQL查询/P1/ 从id=1的表中选择EXISTSSELECT/p2/ 从id=1的表格中选择/p2/限制1 SQL选择/P2/ 伯爵 身份证件 PHP PDO函数/P3/ 获取列 条数

检查行是否存在,最有效的方法是什么? SQL查询/P1/ 从id=1的表中选择EXISTSSELECT/p2/ 从id=1的表格中选择/p2/限制1 SQL选择/P2/ 伯爵 身份证件 PHP PDO函数/P3/ 获取列 条数,php,mysql,pdo,Php,Mysql,Pdo,从以下三个部分中,检查行是否存在的最佳方法是什么?是否具有检索数据的能力,如 可检索: /从id=1的表中查询/选择id限制1 /函数/行数 无法挽回的 /查询/选择存在从id=1的表中选择COUNTid /函数/获取列 在您看来,最好的方法是什么?我想您的意思是在MySQL服务器和客户端上消耗最少的资源 这就是: SELECT COUNT(*) count FROM table WHERE id=1 您将得到一个一行一列的结果集。如果该列为零,则未找到该行。如果列为一,则找到一行

从以下三个部分中,检查行是否存在的最佳方法是什么?是否具有检索数据的能力,如

可检索: /从id=1的表中查询/选择id限制1

/函数/行数

无法挽回的 /查询/选择存在从id=1的表中选择COUNTid

/函数/获取列

在您看来,最好的方法是什么?

我想您的意思是在MySQL服务器和客户端上消耗最少的资源

这就是:

      SELECT COUNT(*) count FROM table WHERE id=1
您将得到一个一行一列的结果集。如果该列为零,则未找到该行。如果列为一,则找到一行。如果列大于一,则找到多行

出于几个原因,这是一个很好的解决方案

COUNT*的效率相当高,尤其是在id被索引的情况下。 它在客户端软件中有一个简单的代码路径,因为它总是只返回一行。您不必像无行或多行这样担心边缘情况。 SQL尽可能清楚地说明了您正在尝试做什么。这对下一个编写代码的人很有帮助。 如果添加到该查询中,则添加限制1将不会起任何作用。本质上,它已经是一个单行结果集。你可以添加它,但是你会让下一个看你代码的人怀疑你在做什么,怀疑你是否犯了某种错误

COUNT*统计与WHERE语句匹配的所有行。COUNTid稍慢,因为它统计所有行,除非它们的id值为null。它必须进行检查。因此,人们通常使用COUNT*,除非有可能忽略空值。如果您在代码中添加了COUNTid,下一个处理它的人将不得不花一些时间来弄清楚您通过计算id而不是*,是否有什么特别的意义


你可以使用任何一个;它们给出了相同的结果

最有效的方法——事实上,唯一有效的方法——是不检查。@嗯,如果我想检查它是否存在,显示默认值或存在的值,使用哪种方法?你试过写出来并使用查询分析器吗?@Twoleggedmarse不,只是从你那里知道的,企业查询分析器的查询分析器.Free替代品如果我们在这个查询的末尾添加LIMIT 1,会有什么不好?为什么COUNT*而不是COUNTidLimit 1是毫无意义的,因为如果不再次聚合group BY,COUNT*将只返回1个值,除非您正在聚合,否则COUNT*将只计算行数,如果您有聚集索引,将使用聚集索引,在大多数情况下,这是您的主键另一件需要提及的是,exists是一个函数,因此在选择之后需要额外的处理