【问题标题】:How to pass an array into IN() clause? [duplicate]如何将数组传递给 IN() 子句? [复制]
【发布时间】: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)

有什么解决办法吗?

【问题讨论】:

    标签: php mysql arrays


    【解决方案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" } }
    • 检查更新的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2013-12-15
    • 1970-01-01
    • 2012-01-13
    • 2012-03-12
    • 2011-06-11
    相关资源
    最近更新 更多