选择两个列相连的数据等于MySQL

时间:2019-01-09 20:08:36

标签: mysql

我正在尝试从表中获取所有数据,在这些表中,我要搜索的人的名字和姓氏与我发送的名字和姓氏列表匹配。问题是名字和姓氏存储在它们自己的列中。有什么办法可以编写查询来查找所有与已发送名称列表匹配的数据。

myDatabase
Fname   | lname  |  email | City ...
___________________________________
John    | Smith  |jsmit...| New York...
Joe     | Smith  |jjsm... | San Fran...
Jane    | Jackson|jjack...| New Yokr...

我会传递一个像'John Smith', 'Jane Jackson'这样的列表,并想返回它们的两行。我知道我可以使用SELECT * FROM myDatabase WHERE Fname IN (...),但是当它们位于单独的列中时,我不知道如何对名字和姓氏执行类似的操作。

如果我说的话没有道理,我会尽力消除任何混乱。

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM myDatabase
WHERE CONCAT(fname, ' ', lname) IN ('John Smith', 'Jane Smith')

答案 1 :(得分:1)

如果您打算返回串联名称,则可以选择它并使用HAVING子句:

SELECT *, CONCAT(fname, ' ', lname) as fullname
FROM myDatabase
HAVING fullname IN ('John Smith','Jane Jackson')