2016-11-21 79 views
1

有没有什么办法可以搜索表中的数据,我将使用两个标准的名字和姓氏?如何搜索两个表,他们有不同的列

表1

Firstname | LastName | Gender 

| Donald | Trump | Male| 

表2

GFirstName | GLastName | Gender 

|Hillary| Clinton | Female 

|Donald | McDonald| Female 

在我的情况,我想搜索“特朗普”

和MySQL数据应显示我的信息

表1

Donald | Trump| Male 

我尝试使用此查询,但它给我什么

SELECT * 
FROM table1 
WHERE 'Firstname' LIKE %Donald Trump% 
    OR 'LastName' LIKE %Donald Trump% 
    UNION ALL 
    SELECT * 
    FROM table2 WHERE 'Firstname' LIKE %Donald Trump% 
    OR 'LastName' LIKE %Donald Trump% 

回答

1

试试

SELECT * 
    FROM table1 
    WHERE 
     CONCAT (Firstname, ' ',LastName) LIKE '%Donald Trump%' 
    UNION ALL 
    SELECT * 
    FROM table2 WHERE CONCAT (Firstname, ' ',LastName) LIKE '%Donald Trump%' 
+0

即时只使用一个标准**唐纳德特朗普**我不能单独**唐纳德**和**特朗普** –

+0

请参阅更新 –

+0

谢谢你解决这个问题!还有一个问题,“CONCAT(Firstname,',LastName)”实际上是做了什么工作? –

1

更改查询像下面,放支架或条件

SELECT * 
FROM table1 
WHERE ('Firstname' LIKE %Donald Trump% 
    OR 'LastName' LIKE %Donald Trump%) 
    UNION ALL 
    SELECT * 
    FROM table2 WHERE ('Firstname' LIKE %Donald Trump% 
    OR 'LastName' LIKE %Donald Trump%) 
+0

仍无法正常工作,但如果去掉** **特朗普里面的**像**它给我的一切,有一个字** **唐纳德的记录,但我的问题是,如果我有两句话标准**唐纳德**和**特朗普**,我想在两个不同的列和表上搜索。我真正想要做的是得到**唐纳德特朗普的数据** **不**得到**表格**中发现的**唐纳德麦克唐纳的数据** –

+0

@APaul它不会工作,因为你有单独的列。你需要做的是:添加一个结合名字和姓氏的列,然后在该列中搜索。改变表结构 –

+0

其okey Pathik我已经解决了问题Ghost已经给了我正确的语法。也感谢你 –

相关问题