ユーザーから入力された5つの異なる文字列で構成されるMySQLデータベースで検索クエリを作成したいと考えています。これらの文字列を使用して、5 つの異なるテーブル列をクエリしたいと考えています。
たとえば、次のような入力フィールドがある場合:
名、姓、住所、郵便番号、都市。
常にすべての行を取得するとは限らないデータベースにクエリを実行するにはどうすればよいですか。
私のクエリは次のようなものです:
SELECT user_id, username
from users
where
a like %?% AND
b like %?% AND
c like %?% AND
d like %?% AND
e like %?%;
AND を OR に交換すると、常に意味のあるすべての結果が得られ、AND を使用すると完全一致のみが得られます...
これに役立つ関数やステートメントはありますか?
編集
私が使用するコードは次のとおりです。
$sql = "select users.user_id, first_name
from users
inner join user_normal_aos
on users.user_id = user_normal_aos.user_id
inner join normal_areas_of_expertise
on user_normal_aos.normal_areas_of_expertise_id = normal_areas_of_expertise.normal_areas_of_expertise_id
where
users.first_name like ? AND
users.kanzlei like ? AND
normal_areas_of_expertise.normal_aoe like ? AND
users.postcode like ? AND
users.city like ?";
$query = $this->db->query($sql,
array(
'%'.$lawyer_name.'%',
'%'.$kanzlei.'%',
'%'.$area_of_expertise.'%',
'%'.$post_code.'%',
'%'.$city.'%')
);