如何从php数组中获取不匹配的值在mysql数据库查询中

时间:2017-10-05 07:05:47

标签: php mysql arrays

我将列表作为php数组。

1  
2
3
4
5

我想获取不满足mysql查询的元素列表。 (即mysql没有与所需的db列匹配的数组值)。 db列:db_value假设有以下内容。

1
3
5
8

此处$output提供匹配的查询输出。

1
3
5

我需要补充。

2
4

这是我的代码:

<?php
foreach ($array as $value)
{
    $query = "SELECT * FROM db WHERE db_value="$value";";
    $result = $conn->query($query);
    while($row = $result->fetch_array())
    {
        $output=$row[db_value];
    }
}
?>

1 个答案:

答案 0 :(得分:2)

  

第一种方法

$listArray = [1, 2, 3, 4, 5]; // our list which is to be match from db

$myArray = implode(",", $listArray); // array to string 

$query = "SELECT * FROM db WHERE db_value NOT IN ($myArray)"; 

现在$query将返回所需的输出

  

第二种方法

$query = "SELECT * FROM db"; // get all from database 

$db_value = array_column($query['db_values']); // suppose $query have database output 

现在使用array_diff()函数

在两个数组之间获得不同
$result = array_diff($db_value, $listArray); // gives you desired output