2011-02-17 3 views
0

하나의 입력 필드 (이름 및 성)로 웹 사이트에 대한 검색 양식을 작성 중이며 두 개의 데이터베이스 필드 (NAME_FIELD 및 LNAME_FIELD)와 일치해야합니다. 분명히 사용자는 원하는대로 이름이나 성 (또는 성만)을 입력 할 수 있습니다. 는단일 입력 및 2 개의 데이터베이스 필드 일치

+0

MyISAM 전체 텍스트 검색을 사용해 보셨나요? –

답변

0

구문은 약간 떨어져있을 수 있습니다 감사합니다,하지만 당신은 같은 것을 할 수있는 : 당신은 정확히 일치하도록 = 'YOUR_FIELD'을 사용할 수 있습니다

WHERE 'name_field' LIKE %'YOUR_INPUT'% OR 'lname_field' LIKE %'YOUR_INPUT'% 

합니다. 사용하지 않을 때

0

가정 사용자 입력은 NULL입니다

select * 
    from YourTable 
    where NAME_FIELD = coalesce(@name, NAME_FIELD) 
     and LNAME_FIELD = coalesce(@lastname, LNAME_FIELD) 
0

당신이 준비가 문을 사용하는 가정 :

WHERE (:name IS NULL OR NAME_FIELD LIKE :name) 
    OR (:lname IS NULL OR LNAME_FIELD LIKE :lname) 

훨씬 더 나은 성능으로 다음을 이끌 것이다, MyISAM Full Text Search에서보세요을 LIKE 연산자.

관련 문제