在mysql表中显示两列的全名

时间:2014-06-21 23:52:55

标签: php mysql

我从mysql表中的两列中选择一个全名,但输入只需要一个订单来返回信息。

firstname | lastname
  Amaj     |  Ato

有了这些数据,我想在用户输入Amaj Ato时从一个文本框中选择全名(Amaj Ato或Ato Amaj),反之亦然(Ato Amaj)。 这是我到目前为止所尝试的

`SELECT * FROM `table_name` WHERE concat_ws(' ', 'firstname', 'lastname') like '%$fullname%'; `

这只能在一个订单中选择名字和姓氏。例如,如果用户输入Amaj Ato,则查询给出全名,但是当用户在姓氏之后输入名字时(如Ato Amaj),查询返回空。我希望用户以他输入名称的任何顺序获取全名。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您需要“告诉”查询您要查找的内容,它并不神奇地知道可以切换名称。为此,您只需添加OR指定其他有效案例:

SELECT * FROM `table_name`
WHERE concat_ws(' ', 'firstname', 'lastname') like '%$fullname%'
    OR concat_ws(' ', 'lastname', 'firstname') like '%$fullname%'