2011-11-22 169 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之間的區別。 –