2016-11-21 161 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已經給了我正確的語法。也感謝你 –

相關問題