我正在构建一个网站的搜索表单,其中包含一个输入字段(名称和姓氏),我需要它来匹配两个数据库字段(NAME_FIELD和LNAME_FIELD)。 显然,用户可以根据自己的喜好输入名称的第一个名字或姓氏(或只是姓氏)。 谢谢
答案 0 :(得分:0)
语法可能有些偏差,但您可以执行以下操作:
WHERE 'name_field' LIKE %'YOUR_INPUT'% OR 'lname_field' LIKE %'YOUR_INPUT'%
您可以使用= 'YOUR_FIELD'
来完全匹配。
答案 1 :(得分:0)
假设未使用时用户输入为NULL:
select *
from YourTable
where NAME_FIELD = coalesce(@name, NAME_FIELD)
and LNAME_FIELD = coalesce(@lastname, LNAME_FIELD)
答案 2 :(得分:0)
假设您使用预备语句:
WHERE (:name IS NULL OR NAME_FIELD LIKE :name)
OR (:lname IS NULL OR LNAME_FIELD LIKE :lname)
查看MyISAM Full Text Search,这会比LIKE
运算符带来更好的性能。