匹配单个输入和两个数据库字段

时间:2011-02-17 21:59:44

标签: mysql input match

我正在构建一个网站的搜索表单,其中包含一个输入字段(名称和姓氏),我需要它来匹配两个数据库字段(NAME_FIELD和LNAME_FIELD)。 显然,用户可以根据自己的喜好输入名称的第一个名字或姓氏(或只是姓氏)。 谢谢

3 个答案:

答案 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运算符带来更好的性能。