我想在 MySQL 数据库上创建一个搜索查询,该查询将由用户输入的 5 个不同的字符串组成。我想用这些字符串查询 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.'%')
);