2011-11-22 132 views
0

我有这样的查询:从匹配值数组的值在MySQL

$sql = " 
     SELECT 
      * 
     FROM 
      tbl_emp_data 
     WHERE 
      company_qualification = '$q' 
    "; 

现在我company_qualification领域是不是一个单一的值,用逗号一样BSc,BA,BCom等分离,而不是它的一个字。价值$q是一个单一的值,如BA。那么如何从价值$q中搜索公司数据。自从它匹配BABBA之类的字段后,我无法使用LIKE

回答

4

您可以使用FIND_IN_SET

$sql = " 
     SELECT 
      * 
     FROM 
      tbl_emp_data 
     WHERE   
      FIND_IN_SET($q,company_qualification) 
    "; 
+0

这是表示“'未知列 'B.A',其中clause''! –

+0

'SELECT * FROM tbl_emp_data WHERE FIND_IN_SET(B.A,company_qualification)LIMIT 0,10' –

+0

'B.A'是一个字符串,必须用单引号或双引号括起来。把''$ q''放在单引号中,并且在用查询代替它们之前,确保你正在转义用户输入。 –

0

您可以使用IN这样的:

SELECT * FROM tbl_emp_data WHERE company_qualification IN ('BSc', 'BA', 'BCom'); 
+0

啊,沙克蒂辛格先到那里。我不知道IN和FIND_IN_SET之间的区别。 –