php - 检查单个 MySQL 记录是否存在的有效方法?

标签 php mysql performance

需要根据数据库中记录的存在执行一些逻辑。由于这个函数会被经常调用,我想知道下面的代码是否可以变得更有效率......

另请注意,该表是一张关联表(employee_id和department_id共同组成一个复合主键),所以永远只有一条符合条件的记录。

例如:

<?php

    function checkEmpDptAssoc($employee_id, $department_id)
    {
        $sqlQuery = sprintf("SELECT COUNT(*)
                             FROM  employee_department ed
                             WHERE ed.employee_id = '%d'
                             AND   ed.department_id = '%d'",
                             $employee_id,
                             $department_id);

        $result = mysql_query($sqlQuery);
        $row = mysql_fetch_assoc($result);

        if ((int) $row['COUNT(*)'] > 0) {
            return true;
        } else {
            return false;    
        } 

    }
?> 

最佳答案

EXISTS可能会快一点,因为您只需要确保一个存在。

SELECT 1 FROM DUAL
WHERE EXISTS (
    SELECT *
    FROM  employee_department ed
    WHERE ed.employee_id = '%d'
        AND   ed.department_id = '%d'
)

关于php - 检查单个 MySQL 记录是否存在的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515039/

相关文章:

javascript - 在字符串中查找单词的字符,优化

performance - 算法 : how do divide-and-conquer and time complexity O(nlogn) relate?

php - Apache 为 Laravel/public 重写

php - 寻找使用 MySQL 后端的 postman 等价物

php - laravel 获取数据没有得到想要的结果

php - SELECT DISTINCT 仍然显示重复项

java - Android Volley - 在字符串上调用 .length() 时抛出空指针异常,但我没有在任何地方使用 .length()

c++ - C++ Eigen 库如何比专门的供应商库执行得更好?

php - 获取最后插入的事件

php - 将 PHP 变量传递回 jQuery $.ajax 函数