2014-07-06 174 views
0

有沒有更好的方法如何做到這一點? PHP中有一個函數?PHP,合併兩個數組,刪除相同的值

$a = array(1, 2, 3, 4, 5, 6); 
    $b = array(1, 2, 8, 9, 10, 3, 20); 

    $c = array_merge($a, $b); 
    $c = array_unique($c); 

結果:1,2,3,4,5,6,8,9,10,20

或者是有一些方法如何做到這一點在MySQL?在情況下:

$a = getMySQLArray("SELECT id FROM table1 WHERE ...") 
$b = getMySQLArray("SELECT id FROM table2 WHERE ...") 

我需要做兩個步驟(兩個SELECT),以獲得我的需要,但有時都數組可以包含所有ID相同的ID,所以我需要對其進行過濾。我並不擅長使用SQL來創建更復雜的SQL請求。有可能創造這樣的東西?

回答

1

您可以使用單個查詢來獲取這些不同的值與UNION

SELECT 
    id 
FROM table1 WHERE ... 
UNION 
SELECT 
    id 
FROM table2 WHERE ... 

UNION而不需要通過關鍵字ALL只返回重複行,你的情況不同的值。

SELECT ... 
UNION [ALL | DISTINCT] SELECT ... 
[UNION [ALL | DISTINCT] SELECT ...] 

UNION用於將結果從多個SELECT語句 組合成單個結果集。 ...

UNION的默認行爲是將重複行從結果中刪除。

+0

非常感謝你,它對我來說非常合適 – Lodhart

相關問題