0

サイトに検索機能を組み込みたい。

ユーザー名、都市、大学/学校名、従業員に基づいて検索できるようにします。name は必須で、その他はオプションのフィールドです。次のテーブルがあります

users(id,fname,lname,city)
profile_pic(id,pic,userid)//userid from users(id) 
educationdetail(eduid,school,userid)//userid from users(id) 
employment(empid.employeer,userid)//userid from users(id) 

profile_pic では、ユーザーごとに 1 つの写真しかありません。教育の詳細では、ユーザーは複数の学校の詳細を追加できます 雇用のユーザーは複数の仕事の詳細を追加できます

検索目的で、次のクエリを使用しています。

    SELECT distinct s.id, s.fname, s.lname,pr.pic
     FROM users as s LEFT JOIN profile_pic as pr 
     on s.id = pr.userid
     LEFT JOIN educationdetail as edu
     on s.id=edu.userid
     LEFT JOIN  employment as emp
     on s.id=emp.userid
     where s.fname like '%m%' and s.lname like '%%%' and s.city like '%%%'

適切な詳細を提供しています

しかし、いくつかのパラメーターを含めると、結果が表示されません

     SELECT distinct s.id, s.fname, s.lname,pr.pic
     FROM users as s LEFT JOIN profile_pic as pr 
     on s.id = pr.userid
     LEFT JOIN educationdetail as edu
     on s.id=edu.userid
     LEFT JOIN  employment as emp
     on s.id=emp.userid
     where s.fname like '%m%' and s.lname like '%%%' and s.city like '%%%'
     and  edu.school='%%%' and emp.employeer='%%%';

見せている

Empty set (0.00 sec)
4

2 に答える 2

0

エスケープ文字を指定するには、キーワードを使用する必要があります。値を検索する場合はESCAPE、述語を使用して予約済みのワイルドカードを検索するときに、次を使用します。LIKE%

WHERE name LIKE '%|%%' ESCAPE '|' -- Or any escape character.

代わりに:

WHERE name LIKE '%%%'
于 2013-01-13T15:14:07.893 に答える
0

多分あなたは使用できますがOR、パターンを検索するときはLIKEnotを使用します=

and  edu.school LIKE '%' and emp.employeer LIKE '%';

更新 1

値が返されない理由は、クエリが存在しない%%%フィールドの値を検索しているためです。edu.school

于 2013-01-13T14:57:45.197 に答える