如何LOCATE()工作的完整单词不是字符串

时间:2014-05-12 09:51:53

标签: php mysql sql

我想获取具有特定关键字的结果,例如'php','htm'。我还想获取连续存在多少个关键字。

例如,我有两行。 一行有技能领域与vlue: - 'php,html,asp,testing' 其他人有: - 'html,asp,测试'

现在,如果我搜索关键字'php'和'htm',那么它可能会返回一条记录,我也想知道该行中存在哪个关键字。例如,如果行只有一个关键字,那么它可能有50%匹配,如果行在记录中同时包含两个关键字,那么它可能100%匹配。

我正在使用以下sql查询: -

  SELECT ROUND(((if(LOCATE("php",skill)>0,25,0) + if(LOCATE("htm",skill)>0,25,0)) * 100) / 50) AS Candidate__SkillTot,
       `Candidate`.`id`
FROM `kings_desktop`.`candidates` AS `Candidate`
LEFT JOIN `kings_desktop`.`cand_accounts` AS `CandAccount` ON (`CandAccount`.`candidate_id` = `Candidate`.`id`)
WHERE (if(LOCATE("php",skill)>0,25,0) + if(LOCATE("htm",skill)>0,25,0)) LIMIT 100

问题是此查询返回两个记录。我只希望第一行占Candidate__SkillTot值的50%

0 个答案:

没有答案