从表中的多个值中选择不在数组中的位置

Posted

技术标签:

【中文标题】从表中的多个值中选择不在数组中的位置【英文标题】:select where not in array from multiple values in table 【发布时间】:2016-11-16 17:00:58 【问题描述】:

我有一个包含一些值的数组。我想从值不等于数组中的值的表中检索一些东西

$myarray_example = array(1.1,2.5);

表格示例:

id   value
1     1.10
2     1.10
3     2.50
4     2.50
5     3.10
6     3.10

所以在这个例子中我只想得到 3.10 的值

查询

SELECT value FROM table 
WHERE value NOT IN ($myarray_example)

它返回所有内容。如果我使用 'WHERE value IN..' 那么它什么也不返回。

有人知道为什么会这样吗?

【问题讨论】:

因为根据您的示例数组,这些看起来像 string/varchar 值和 1.1 1.102.5 2.50,因此,你得到了每个行。 您好,澄清一下,我正在传递数字。这只是我帖子中的一个错误。数组和表中的数字都是浮点数 【参考方案1】:
$query = " SELECT value FROM table ";
$query .= " WHERE value NOT IN ( ";

$count = 0;
foreach($myarray as $item) 
    $query .= $item;
    if ($count != count($myarray) - 1)
        $query .= ",";
    $count++;


$query .= ")";

【讨论】:

您好,谢谢。我使用了与您刚才建议的类似的东西,并且有效。

以上是关于从表中的多个值中选择不在数组中的位置的主要内容,如果未能解决你的问题,请参考以下文章

php 从表中的多个列获取数据作为数组并对其进行操作

从表中保存多个下拉选择 - PHP MySQL

使用猫鼬模式将多个选择元素值中的值存储到MongoDB中的数组中

如果存在则从表中选择,否则从oracle中的另一个表中选择

SQL Server 使用 in 子句从表中选择字符串

选择不在使用多个连接语句创建的表中的行