【问题标题】: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,因此,你得到了每个行。
  • 您好,澄清一下,我正在传递数字。这只是我帖子中的一个错误。数组和表中的数字都是浮点数

标签: mysql sql arrays notin


【解决方案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 .= ")";

【讨论】:

  • 您好,谢谢。我使用了与您刚才建议的类似的东西,并且有效。
猜你喜欢
  • 2017-05-19
  • 2019-02-09
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多