2011-11-22 12 views
0

に値の配列から値を一致:は、私はこのようなクエリを持っているmysqlの

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

今私のcompany_qualificationフィールドは、単一の値、BSc,BA,BComなどのように、カンマで区切られた代わりに、そのAの言葉ではありません。値$qは、単一の値、たとえばBAとなります。だから、値$qから会社のデータを検索するにはどうすればいいですか? LIKEは、BABBAなどのフィールドと一致するため使用できません。

答えて

4

あなたは、あなたがこのようなIN使用することができますFIND_IN_SET

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

を! –

+0

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

+0

'B.A'は文字列であり、一重引用符または二重引用符で囲む必要があります。 '' $ q ''を一重引用符で囲み、ユーザ入力をエスケープしてからクエリに置き換えるようにしてください。 –

0

使用することができます:それはどこclause'`に `不明な列 'B.A' を示している

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

ああ、Shakti Singhが最初にそこに着いた。私はINとFIND_IN_SETの違いは分かりません。 –

1
​​
+0

おかげさまでOptimusCrime ... –

関連する問題