我从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),查询返回空。我希望用户以他输入名称的任何顺序获取全名。谢谢你的帮助。
答案 0 :(得分:2)
您需要“告诉”查询您要查找的内容,它并不神奇地知道可以切换名称。为此,您只需添加OR
指定其他有效案例:
SELECT * FROM `table_name`
WHERE concat_ws(' ', 'firstname', 'lastname') like '%$fullname%'
OR concat_ws(' ', 'lastname', 'firstname') like '%$fullname%'