如何将数组传递给 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 子句?