2011-11-17 102 views
0

我正在建立一个求职网站,考生可以注册自己的各种工作。此外,雇主可以发布具有多种资格的工作(例如,如果他希望获得MBA或Phd,它将以mba,phd的形式保存在数据库中)我想为注册的候选人显示与其教育资格相关的工作,所以我很困惑我这样做是因为我觉得我要的数据库中进行搜索,请帮忙在数据库字段内搜索

if($cid >0)   //If the candidate is registered 
    { 
     $quali = $this->getCandidatesQualification($cid); 

     $cond = "WHERE ";    //I want to put a condition if he is registered with us , it will show jobs a/c to his qualification 
    } 

UPDATE:。

$cond = ""; 
    if($cid >0) 
    { 
     $quali = $this->getCandidatesQualification($cid); 

     $cond = "WHERE emp_qualification LIKE '%$quali%'"; 
    } 


    $sql = "SELECT 
      emp_job_id,emp_job_profie,emp_qualification,emp_experience 
     FROM 
      tbl_emp_data 
      $cond 
     ORDER BY job_add_date DESC LIMIT 0,10 
    "; 

//查询搜索所有作业

$sql = "SELECT 
       emp_job_id,emp_job_profie,emp_qualification,emp_experience 
      FROM 
       tbl_emp_data 
      ORDER BY job_add_date DESC LIMIT 0,10 
     "; 

回答

1

您可以使用LIKE关键字 - 例如,

 SELECT 
      emp_job_id,emp_job_profie,emp_qualification,emp_experience 
     FROM 
      tbl_emp_data 
     WHERE emp_qualification LIKE '%MBA%' 
     ORDER BY job_add_date DESC LIMIT 0,10 

这里,“%”通配符用于任何数量的前或后的MBA人物的,所以它会发现它在串像MBABTech, MBABCom, MBA, PhD

+0

感谢。我也在想它。现在我确认了。请检查我的更新查询,并告诉我是否正在写入正确的查询。 –

+0

是的,它应该工作。将来,最好试试看看它是否有效,而不是总是询问某人 –

+1

请注意,通配符前缀的LIKE子句不能使用索引,并且不能很好地扩展。对于你正在做的事情,使用诸如lucene,狮身人面像,太阳能等来搜索这种类型的数据可能会更好。 –

0

设置式柱在tbl_emp_data名称'is_registered'类型ENUM和设置两个值( '0', '1')

然后设置WHERE条件

WHERE is_registered = 1