2014-07-06 176 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

相关问题