【问题标题】:Select where in array选择数组中的位置
【发布时间】:2012-04-08 19:36:09
【问题描述】:

如何选择数组中id所在的所有记录?

因此,如果我有一个值为 1、25、2、12、1859 和 192 的数组:应该返回所有具有 id 的记录。

现在我有了这个:

$query="SELECT * FROM table WHERE Id IN(".implode(",",$my_array).")";

但这不起作用。它只返回一个值。

【问题讨论】:

  • 您能否展示更多代码以及print_r($my_array)?
  • 当然:输出为:Array ( [0] => 24 [1] => 26 ) 并且在查询中只返回 24。
  • implode(",",$my_array) 只返回24 或者查询只选择 ID 为 24 的行?
  • 好吧,也许我的代码中还有另一个错误。我正在寻找它,如果没有,我在这里再次询问。谢谢;-)
  • var_dump($query); 给了什么?

标签: php mysql arrays select


【解决方案1】:

在查询中添加引号

$query="SELECT * FROM table WHERE Id IN('".implode("','",$my_array)."')";

【讨论】:

  • 如果值是整数,则不需要引号。
【解决方案2】:

我的建议是首先将 my_array 内爆,将其存储在一个变量中,然后在您的查询中使用。

例子:

<?php 
$my_array[0] = 24;
$my_array[1] = 26;
$qryVals = implode(",",$my_array);
$query="SELECT * FROM table WHERE Id IN($qryVals)";
echo $query;
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    相关资源
    最近更新 更多