【问题标题】:Can i put an array in mysql select?我可以在mysql select中放置一个数组吗?
【发布时间】:2011-05-06 15:40:30
【问题描述】:

我可以在 mysql select 中放入一个数组吗?

$usersArray = array(34, 23, 17, 17, 56);

$result = mysql_query("SELECT * FROM users WHERE user_id=$usersArray");

我可以这样做吗?

【问题讨论】:

    标签: php mysql arrays select


    【解决方案1】:

    没有。我相信你应该这样做:

    $result = mysql_query("SELECT * FROM users WHERE user_id IN (" . implode(', ', $usersArray) . ")");
    

    【讨论】:

    • 它验证一个值(或字段)是否在给定的集合(可以是一个选择语句)中。在第一次匹配时返回 true。
    • 如果我想搜索 2 个字段,如 user_id 和 user_name,我该怎么办
    • 这是一个单独的问题,需要在评论中留出空间来回答。
    【解决方案2】:
    $usersArray = array(34, 23, 17, 17, 56);
    
    $result = mysql_query("SELECT * FROM users WHERE user_id in (".
        implode(",",$usersArray).
        ")");
    

    这是不安全的,因为将 sql 参数作为连接字符串放置。但你大概明白了。

    【讨论】:

      【解决方案3】:

      试试:

      $usersArray = array(34, 23, 17, 17, 56);
      $usersIn = implode(",",$usersArray);
      $result = mysql_query("SELECT * FROM users WHERE user_id in($usersIn)");
      

      “in”将 user_id 与括号内逗号分隔列表中的任何条目进行比较。

      【讨论】:

        猜你喜欢
        • 2012-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-28
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多