选择表中不存在的列表值

时间:2017-11-03 12:01:25

标签: php mysql

我的PHP代码中有一个值列表。我们可以说:

$myList = array("one", "two", "three")

我想选择表中不存在的数组值。

我尝试过类似的东西:

SELECT *
FROM (my-list-here)
WHERE
    NOT EXISTS (
        SELECT * FROM my_table WHERE value IN (my-list-here)
    )

我不知道如何从该数组中选择值:(

2 个答案:

答案 0 :(得分:1)

我不知道我们是否真的可以为数组执行SQL查询,而不是像你这样的表格

SELECT *
FROM (my-list-here)
WHERE...

您可以做的是使用查询从表中获取值的数组,并使用array_diff删除$myList数组中存在的值。

答案 1 :(得分:1)

我认为你必须务实地做到这一点:

你的阵列:

$myList = array("one", "two", "three");

从表中获取数据(例如PDO库)

$dbh = new PDO("mysql:host=".$host.";dbname=".$dbName, $username, $password);
$sth = $dbh->prepare("SELECT * FROM my_table");
$sth->execute();

/* Fetch all of the values of the first column for example */
$tableList = $sth->fetchAll(PDO::FETCH_COLUMN, 0);

从$ myList中排除$ tableList

$results = array_diff($myList, $tableList);