php - MySQL 查询行的最快方法

标签 php mysql

我的问题是我还没有一个好的服务器来测试它,但我想知道它是否使用起来更快:

$sqlgetg = "SELECT assignments.id FROM assignments LEFT JOIN userassignments ON assignments.id = userassignments.assignmentid WHERE userassignments.userid = '" . $row['id'] . "' AND userassignments.assignmentid = '" . $assignmentid . "'";

$sqlgetg = "SELECT NULL FROM assignments LEFT JOIN userassignments ON assignments.id = userassignments.assignmentid WHERE userassignments.userid = '" . $row['id'] . "' AND userassignments.assignmentid = '" . $assignmentid . "'";

因为我必须检查是否存在分配 ID 为 x 的用户的分配?我不需要任何其他东西,除了这个:if(mysqli_num_rows($resultgetg) > 0)?在这两种情况下,phpMyAdmin 都给了我我想要的行号。 (我用它检查过 没有 WHERE,它仍然有效。)

编辑: I don't know how and why NULL works but it does...

最佳答案

如果您只想计算返回的行数,则可以“从”表中选择任何静态值... SELECT NULLSELECT 42管他呢。但实际上,您的两种策略都不是最佳的,因为它们需要服务器进行不必要的工作、不必要的网络流量以及对您打算丢弃的结果集进行不必要的处理。

如果您想要计算行数,那么实际上就这样做。你应该SELECT COUNT(*) AS how_many_rows ...并让服务器计算行数并返回包含计数的单行和单列(“how_many_rows”——组成您自己的别名)。

关于php - MySQL 查询行的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47010601/

相关文章:

php - Symfony 1.4 - MySql View 的 getPager 附加变量

php - 内部连接 ​​Eloquent as JSON,错误的答案

php - PHP 中是否有一系列的扩展/模块加载?

php - 如何获取表的主键?

Mysql 子查询优化非常慢

mysql - 如何导入示例数据库sakila,mysql

php - 从数据库中获取记录时的动态行跨度

php - 如何从mysql中以逗号分隔的表中选择一个值

php - 使用户能够双击表格文本来输入更改;数据库根据这些更改进行更新

php - 使用 MySQL 对列的逗号分隔字符串进行排序