2011-11-22 4 views
0

의 값의 배열에서 값을 일치 :내가이 같은 쿼리를 MySQL의

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

이제 내 company_qualification 필드가 단일 값, BSc,BA,BCom 등처럼 쉼표로 구분 대신 자사의 단어가 없습니다. 값 $q은 하나의 값인 BA입니다. 그러면 $q 값에서 회사 데이터를 검색하려면 어떻게해야합니까? LIKEBABBA과 같은 입력란과 일치하므로 사용할 수 없습니다.

답변

4

당신은 당신이 같은 IN을 사용할 수 있습니다 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

를 사용할 수 있습니다

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

아, Shakti Singh가 먼저 도착했습니다. 하지만 IN과 FIND_IN_SET의 차이는 모르겠다. –

1
$sql = " 
     SELECT 
      * 
     FROM 
      tbl_emp_data 
     WHERE 
      company_qualification IN ('".implode("','",$q)."') 
    "; 
+0

감사의 말 OptimusCrime ... –

관련 문제