我正在尝试从表中获取所有数据,在这些表中,我要搜索的人的名字和姓氏与我发送的名字和姓氏列表匹配。问题是名字和姓氏存储在它们自己的列中。有什么办法可以编写查询来查找所有与已发送名称列表匹配的数据。
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 (...)
,但是当它们位于单独的列中时,我不知道如何对名字和姓氏执行类似的操作。
如果我说的话没有道理,我会尽力消除任何混乱。
答案 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')