php - MySQL计算匹配百分比

标签 php mysql statistics

我正在使用 PHP 和 MySQL 制作一个招聘网站,我希望能够在提交职位时将候选人与职位相匹配

当客户提交工作时,他们可以选择工作适用的部门、是否需要驾驶执照、候选人是否必须在 SIA(安全行业管理局)注册以及 SIA 级别和其他一些标准

提交工作时我希望能够做的是检查数据库中是否有匹配的候选人,然后根据他们匹配的条件的多少返回一个百分比

目前我的想法是针对 x 个条件进行 x 个数据库查询,然后计算出百分比,例如:

public function getJobCriteriaPercentage($job_id, $candidate_id) {
    $sector_query = $this->db->query(...);
    $driving_licence_query = $this->db->query(...);
    $sia_query = $this->db->query;
    ...
    $matches = 0;
    if($sector_query->num_rows) {
        $matches++;
    }
    ...
    $percent = ($matches / TOTAL_CRITERIA) * 100;
}

有没有一种更有效的方法可以在一个 MySQL 查询中做到这一点?

最佳答案

根据每个条件运行查询将会终止您的服务器。为什么不返回包含总匹配数的列?

EG:如果您的过滤器是:

  • ColA = 'valA'
  • (1, 5, 7) 中的 ColB
  • ColC 类似“%valC%”

你可以这样做:

select
    (ColA = 'valA') + 
    (ColB in (1, 5, 7)) + 
    (ColC like '%valC%') TotalMatches
from t
where jobId = $jobId and candidateId = $candidateID

如果您想了解具体的匹配项,可以将其分成几列:

select
    ColA = 'valA' ColAFilter,
    ColB in (1, 5, 7) ColBFilter,
    ColC like '%valC%' ColCFilter
from t
where jobId = $jobId and candidateId = $candidateID

比较结果为 true 时返回 1,为 false 时返回 0。

关于php - MySQL计算匹配百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790723/

相关文章:

php - 想通过 php 站点运行我的 Windows 服务器上的 exe 文件

java - (Java)统计分析作业

php - 使用 Cron 作业每 x 秒运行一次 php 脚本

python - 如何在每个波段/箱中以数据百分比作为标签绘制正态分布?

python - 有没有一种简单的方法可以计算 Pandas value_counts 系列的均值和标准差?

php - Facebook PHP-SDK getUser() 始终返回 0

php - 如何使变量对特征私有(private)?

PHP PDO自定义sql查询准备

mysql - Grails 应用程序似乎持有对陈旧数据库连接的引用

Python内部类自身