如何将数组传递给 IN() 子句? [复制]

Posted

技术标签:

【中文标题】如何将数组传递给 IN() 子句? [复制]【英文标题】:How to pass an array into IN() clause? [duplicate] 【发布时间】:2016-01-12 05:57:03 【问题描述】:

我有一个这样的数组:

$str = 'In My Cart : 11 12 items';
preg_match_all('!\d+!', $str, $matches);
print_r($matches); // output is two number: 11, 12

现在我想知道,如何将这个数组 $matches 传递给这个查询?

SELECT column_name(s)
FROM table_name
WHERE column_name IN ($matches); // actually I want something like this: IN (11, 12)

有什么解决办法吗?

【问题讨论】:

【参考方案1】:

使用implode -

"SELECT column_name(s)
FROM table_name
WHERE column_name IN (" .implode(',', $matches[0]) . ")";

【讨论】:

似乎正确,谢谢...(如果工作正常,我会检查并接受它作为我的答案)。 +1 点赞 嗯,有个小问题,这个implode(',', $matches)的输出是这样的:array!我想我需要两个implode() 可以加var_dump($matches)吗? array(1) [0]=> array(2) [0]=> string(2) "11" [1]=> string(2) "12" 检查更新的答案。

以上是关于如何将数组传递给 IN() 子句? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

通过 FMDB 将数组传递给 sqlite WHERE IN 子句?

c++ - 如何将多维数组传递给没有内部维度的函数? [复制]

如何将变量传递给 IN 子句?

将数组传递给构造函数会产生大小为 1 的数组? [复制]

如何将数组数组作为一系列变量传递? [复制]

JPA将列表传递给命名本机查询中的IN子句